服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 详解MySQL分组排序求Top N

详解MySQL分组排序求Top N

2020-08-01 17:49MYSQL教程网 Mysql

这篇文章主要介绍了详解MySQL分组排序求Top N的相关资料,需要的朋友可以参考下

MySQL分组排序求Top N

表结构

 详解MySQL分组排序求Top N

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


 
 详解MySQL分组排序求Top N

源代码:

?
1
2
3
4
5
6
7
8
9
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中可以通过子查询创造一个新的变量来过滤。

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

延伸 · 阅读

精彩推荐