我需要一个查询来从我的数据库中获取前3个计数,但使用max将从中获得最高的第一个计数。我如何获得前3名?
count
30
29
29
28
28
28
27
26
25
SELECT count FROM tableName WHERE count = max($count) LIMIT 30 //doesn't work because max only get the top first count.
预期结果
30
29
29
28
28
28
答案 0 :(得分:2)
子查询选择最高的3个不同值。在这种情况下,它们是30,29和28,外部查询选择具有其中一个计数的所有行。
select `count` from tablename
where `count` in (
select distinct `count`
from tablename
order by `count` desc
limit 3
)
顺便说一句,count
是保留字,您应该尽量避免将其用作列名。
答案 1 :(得分:0)
SELECT count FROM tableName order by count desc limit 3
我希望它能帮到你
答案 2 :(得分:0)
不完全是你所要求的,但请尝试以下方法:
$ git cat-file -p HEAD~2
结果:
SELECT `count`
FROM tableName
GROUP BY `count`
ORDER BY `count` DESC
LIMIT 3
如果您需要知道每个值出现的次数,请尝试:
30
29
28
结果:
SELECT `count`, COUNT(*) AS times
FROM tableName
GROUP BY `count`
ORDER BY `count` DESC
LIMIT 3