0
------------
| 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   |
------------

こんにちはスタックオーバーフロー!

私は次のようなテーブルを持っています。テーブルには数分おきに数字が追加されます。idauto_increment値でtidあり、追加される ID です。tid0 から始まる任意の数にすることができ、任意の順序にすることもできます。

で最も一般的な上位 4 つの数字を取得したいと考えていますtid。たとえば、上位 3 つは次のようになります。

1 . 3
2 . 1
3 . 2

しかし、これはほんの一例です。

どうすればこれを達成できますか?これを MySQL のみを使用するように制限できますか、それとも PHP も使用する必要がありますか? もしそうなら、私は何をどのようにしますか?

ご挨拶

4

2 に答える 2

2
SELECT tid, COUNT(tid) AS occurences
 FROM table
 GROUP BY tid
 ORDER BY occurences DESC
 LIMIT 4
于 2013-09-12T18:25:40.130 に答える
0
SELECT COUNT(id) AS total, tid 
FROM `table` 
GROUP BY tid 
HAVING total>0 
ORDER BY total DESC 
LIMIT 3
于 2013-09-12T18:27:46.423 に答える