knrt.net
当前位置:首页 >> mysql查询结果分组排序 >>

mysql查询结果分组排序

额 联合查询 + 临时表 也可以 效率貌似更低select t1.* from t1 left outer join (select * from t1 order by `key` desc limit 0,100) as temptableon t1.id = temptable.idgroup by `key`直接用临时表 也可以select * from (select * t1 order by `key` limit 0,1000) as temptable group by `key`

group by是分组order by 是排序 要是你想这样的话,根本就不需要用分组查询;这样就可以了 select name,sum(成绩) from 表 where name = '张三';

如果你要查询所有的列 只按name分组 会报错的 所有都要根据type,name,guest,date 分组select type,name guest date from table order by date desc group by name,type,guest

一使用select子句进行多表查询 select 字段名 from 表1,表2 … where 表1.字段 = 表2.字段 and 其它查询条件 select a.id,a.name,a.address,a.date,b.math,b.english,b.chinese from tb_demo065_tel as b,tb_demo065 as a where a.id=b.id 注:在上面

//分别 排序SELECT `id`, `NAME`, `phone` FROM `test` ORDER BY `id` ASC,`name` ASC

group by语句必须和聚合函数一起使用.select c,max(d) from a group by c order by max(d) desc这样子可以.因为一条select语句只可以返回一个结果集此句返回按c分组后并按每组中最大的d值进行排序.

如果你的UID是int型先进行转换,然后截取前两位,在用聚合函数获取总数,进行分组查询就好了,语句如下(把表名替换下可以直接用):select SUBSTRING(CONVERT(varchar(50),UID),0,3),COUNT(*) from 表 group by SUBSTRING(CONVERT(varchar(50),UID),0,3)

把desc去掉

select substr(uid,1,2) as 开头数字,count(*) as 合计 from 表 group by substr(uid,1,2)

--1.建表create table 表(data date,name varchar(10)) --2.插入数据 insert into 表 values('2010-1-1', '老李') insert into 表 values('2011-1-1', '小王') insert into 表 values('2011-1-1', '老李') insert into 表 values('2012-1-1', '小王') insert into 表

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com