表结构如下: 需求:查询每个学科(type)最高分(score) 想要的结果如下: 尝试通过group by order by 查询 sql 如下 SELECT * FROM `repor
想要的结果如下:
SELECT * FROM `reports` GROUP BY type ORDER BY score DESC;
结果如下:
order by 是在最后执行并不能查询到想要的结果
SELECTa.* FROM( SELECT * FROM `reports` ORDER BY score DESC) AS a GROUP BYa.type;
结果如下:
并没有得道正确的结果
然后查询资料看到有博客说需要在子查询加上limit,如下sql:
SELECTa.* FROM( SELECT * FROM `reports` ORDER BY score DESC LIMIT 10) AS a GROUP BYa.type;
结果如下:
结果是对了,但是总觉得奇怪,为什么要加 limit ,这不是我想要的
###尝试通过聚合函数查询,sql如下:
SELECT s.*,max( s.score ) FROM( SELECT * FROM `reports` GROUP BY type, name ORDER BY score DESC ) s GROUP BYs.type
结果如下:
搞定
max( s.score ) 亦可拿掉
来源地址:https://blog.csdn.net/qq_38055667/article/details/126770160
--结束END--
本文标题: Mysql GROUP BY 查询每组某值最大的一条数据
本文链接: https://www.lsjlt.com/news/395708.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0