------------
| 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!
我的表格如下。该表每隔几分钟就会添加一个数字。 id
是auto_increment
值,tid
是要添加的ID。 tid
可以是从0开始的任何数字,也可以是任何顺序。
我想获得tid
中排名前四的最常见数字。例如,这里的前三名是:
1 即可。 3
的 2 即可。 1
3 即可。 2
但这只是一个例子。
我怎样才能做到这一点?我可以将此限制为仅使用MySQL还是需要使用PHP?如果是这样我会做什么以及如何做?
问候
答案 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