分组查询最大/最小值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;
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;
相关文章推荐
- SQL按天进行分组查询最大值和最小值
- sql分组查询最大值或最小值
- SQL按天进行分组查询最大值和最小值
- SQL 按字段分组后取每组内最大或最小的值
- sql 如何按时间排序 分组 并且取每组时间最大或最小的一条数据
- SQL 分组后获取分组内某一个属性值最大或者最小等等
- sql分组取最大最小
- SQL查询得到(按编号分组的日期最大的记录)
- sql查询语句,求每个分组中的最大值实例
- sql分组查询每组的最大值
- 分组查询最大最小记录的方法
- [sql server] 分组取最大最小常用sql
- [VB.NET]用SQL查询得到(按编号分组的日期最大的记录)
- 数据库排名sql,group by 分组查询按照时间最大值
- sql查询语句,求每个分组中的最大值实例
- sql指定排序规则、筛选id最大或最小记录、查询插入数据
- sql 查询每个分组最大的值
- sql查询语句,求每个分组中的最大值实例
- sql 分组后查询最大所有列信息
- SQL分组取最大/最小的问题