获得数据库的前3位数

时间:2015-09-27 18:28:01

标签: php mysql

我需要一个查询来从我的数据库中获取前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

3 个答案:

答案 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

这是SQLFiddle