Php 获取数据库的前3个计数

Php 获取数据库的前3个计数,php,mysql,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. 预期结果 从tableName order by count desc limit 3

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


从tableName order by count desc limit 3中选择count


我希望它能帮助您

子查询选择最高的3个不同值。在本例中,它们是30、29和28,外部查询选择具有其中一个计数的所有行

select `count` from tablename
where `count` in (
    select distinct `count`
    from tablename
    order by `count` desc
    limit 3
)

顺便说一下,
count
是一个保留字,您应该尽量避免将其用作列名。

不完全是您想要的,但请尝试以下操作:

SELECT `count`
FROM tableName
GROUP BY `count`
ORDER BY `count` DESC
LIMIT 3
结果:

30
29
28
30, 1
29, 2
28, 3
如果需要知道这些值出现的次数,请尝试:

SELECT `count`, COUNT(*) AS times
FROM tableName
GROUP BY `count`
ORDER BY `count` DESC
LIMIT 3
结果:

30
29
28
30, 1
29, 2
28, 3

这里有一个

不清楚,请提供原始数据、预期结果以及前三项统计背后的逻辑…@AbhikChakraborty你在说什么?原始数据低于计数。Count是colName。预期结果以粗体显示。前三名背后的逻辑是什么?这不是很明显吗?不是使用max获得第一个最高计数,而是获得前3个。不。那只会得到30,29,29。还记得预期结果是30,29,29,28,28,28吗?请不要说只使用限制6,因为你不知道有多少行。以上只是一个例子。不。那只会得到30,29,29。还记得预期结果是30,29,29,28,28,28吗?请不要说只使用限制6,因为你不知道有多少行。这只是上面的一个例子。不,我的第一个查询将得到30,29,28。看小提琴。我的第二个查询提供了与预期结果相同的信息,尽管形式不同。否。那只会得到30,29,29。还记得预期结果是30,29,29,28,28,28吗?请不要说只使用限制6,因为你不知道有多少行。这只是上面的一个例子。@jessica不,它将得到30,29,29,28,28,28Ah,对不起。我看到了3个答案,分别是30,29,29,我想没有人知道我在问什么。