我试图将返回的行数限制在排序后的前 5 行,但我还需要返回与第 5 个最高值共享相同值的所有其他行。
即
Number of Traffic Tickets
8
7
7
6
4
4
4
3
2
应该返回 8, 7, 7, 6, 4, 4, 4 因为 4 是第 5 个值,而其他 4 是“并列”。
是否可以在 MySQL 中限制这样的行?
SELECT NumTickets FROM drivers ORDER BY NumTickets DESC LIMIT 5 ???;
在 MySQL 中是否可以在问号中加上一些东西来实现类似的功能?
最佳答案
使用子查询有几种方法可以做到这一点。这使用 IN
:
Select NumTickets
From drivers
Where NumTickets In (
Select NumTickets
From drivers
Order By NumTickets Desc
Limit 5)
您还可以使用JOIN
:
Select d.NumTickets
From drivers d
join (
Select NumTickets
From drivers
Order By NumTickets Desc
Limit 5) d2 on d.numTickets = d2.NumTickets
关于MySQL 可以使用 LIMIT 返回 n 行,然后还返回值与第 n 行匹配的任何其他行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26266998/