分组查询最大/最小值sql

时间:2023-01-16 15:15:45

经典题目:查询每个班级的最高分,查询每种日志的最晚记录
1.查询每个班级的最高分(不考虑同一分数的)
分组查询最大/最小值sql
SQL语句:
SELECT id,name,calssid,MAX(score) FROM
(SELECT * FROM t_zhb ORDER BY score desc) A
GROUP BY calssid;
查询结果:
分组查询最大/最小值sql

必须要有子查询,子查询先要排序,如果取最大,倒序排,反之,正序排。

注意:如果要考虑多人同分的,则需要用自连接方式实现分组排序,具体见:
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;