您的位置:首页 > 数据库

分组查询最大/最小值sql

2018-04-03 21:00 316 查看
经典题目:查询每个班级的最高分,查询每种日志的最晚记录
1.查询每个班级的最高分(不考虑同一分数的)



SQL语句:
SELECT id,name,calssid,MAX(score) FROM
(SELECT * FROM t_zhb ORDER BY score desc) A
GROUP BY calssid;

select * from(select * from t_zhb order by score desc) a group by classid  该语句上上面语句效果一样,先把数据按照某字段排序,再查下分组。

查询结果:



必须要有子查询,子查询先要排序,如果取最大,倒序排,反之,正序排。
注意:如果要考虑多人同分的,则需要用自连接方式实现分组排序,具体见:
http://blog.csdn.net/okiwilldoit/article/details/50955012
同理,如果有一个张日志表t_log,表结构有id,logtime,type,content四个字段,想要获取每种类型日志的最晚记录.
SQL语句为:
SELECT id,type,content,MAX(logtime) FROM
(SELECT * FROM t_log ORDER BY logtime DESC) A
GROUP BY type;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: