mysql 查询分组top_详解MySQL分组排序求Top N

详解MySQL分组排序求Top N

MySQL分组排序求Top N

表结构

mysql 查询分组top_详解MySQL分组排序求Top N_第1张图片

按照grp分组,按照num排序,每组取Top 3,输出结果如下:

mysql 查询分组top_详解MySQL分组排序求Top N_第2张图片

源代码:

SELECT * FROM score AS t3

WHERE (

SELECT COUNT(*) FROM score AS t1

LEFT JOIN score AS t2

ON t1.grp = t2.grp AND t1.num < t2.num

WHERE t1.id = t3.id

) < 3

ORDER BY t3.grp ASC, num DESC

在where中可以通过子查询创造一个新的变量来过滤。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2017-07-02

昨天有个需求对数据库的数据进行去重排名,同一用户去成绩最高,时间最短,参与活动最早的一条数据进行排序.我们可以利用MySQL中的group by的特性. MySQL的group by与Oracle有所

你可能感兴趣的:(mysql,查询分组top)