MySQL / PHP计算列中最常见的3个值

时间:2013-09-12 18:16:13

标签: php mysql

------------
| id | tid |
------------
| 1  | 0   | 2x 0
| 2  | 1   | 3x 1
| 3  | 3   | 3x 2
| 4  | 3   | 6x 3
| 5  | 3   | 1x 17
| 6  | 17  |
| 7  | 2   |
| 8  | 3   |
| 9  | 0   |
| 10 | 3   |
| 11 | 2   |
| 12 | 1   |
| 13 | 1   |
| 14 | 3   |
| 15 | 2   |
------------

再次问好stackoverflow!

我的表格如下。该表每隔几分钟就会添加一个数字。 idauto_increment值,tid是要添加的ID。 tid可以是从0开始的任何数字,也可以是任何顺序。

我想获得tid中排名前四的最常见数字。例如,这里的前三名是:

1 即可。 3
2 即可。 1
3 即可。 2

但这只是一个例子。

我怎样才能做到这一点?我可以将此限制为仅使用MySQL还是需要使用PHP?如果是这样我会做什么以及如何做?

问候

2 个答案:

答案 0 :(得分:2)

SELECT tid, COUNT(tid) AS occurences
 FROM table
 GROUP BY tid
 ORDER BY occurences DESC
 LIMIT 4

答案 1 :(得分:0)

SELECT COUNT(id) AS total, tid 
FROM `table` 
GROUP BY tid 
HAVING total>0 
ORDER BY total DESC 
LIMIT 3