SQL - 选择“n”群体中最大的元素
SQL MAX
聚合函数将允许您选择组中的顶部元素。有没有办法为每个组选择前 n 个元素?
例如,如果我有一个用户表,其中保存了他们的部门排名,并且想要每个部门的前两名用户......
Users
userId | division | rank
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 3
我希望查询以某种方式返回用户 2,3,4
如果重要的话,我正在使用 MySQL 。
The SQL MAX
aggregate function will allow you to select the top element in a group. Is there a way to select the top n
elements for each group?
For instance, if I had a table of users that held their division rank, and wanted the top two users per division ...
Users
userId | division | rank
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 3
I would want the query to somehow return users 2,3,4
If it matters, I'm using MySQL.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
试试这个:
Try this:
顺便说一句:大多数人从零开始计算排名:民意调查位置的排名=1,第二个的排名=2,等等。在这种情况下,您的排名是 1+排名中您之前的人数
BTW: most people count ranks starting from zero: poll-position gets rank=1, the second gets rank=2, et cetera. In that case you rank is 1+ the number of people before you in the ranking