1
我有一個ip地址列的表。我想找到列出的前五個地址。具有限制的MySQL top count({column})
現在我打算出來了以下內容:
- 選擇所有不同的IP地址
- 遍歷所有這些說法
count(id) where IP='{ip}'
和存儲計 - 名單前五名計數。
缺點包括如果我有500個IP地址。這是我必須運行的500個查詢來弄清楚前五名的情況。
我想建立一個查詢,像這樣
select ip from table where 1 order by count({distinct ip}) asc limit 5
優秀的,謝謝。雖然你可以更好地解釋'group by'是如何工作的?刪除它,我只獲得相同的IP並重復計數五次。 – 2010-04-29 02:35:05
@Josh:想象一下,你會得到一張牌,你被要求統計有多少紅色和黑色牌。爲了做到這一點,你將它們按顏色分組。你也可能被問到什麼是最高或最低的紅牌,再次,你會按顏色分組,然後確定最高和最低。這就是上面的查詢所做的事情,但它是通過'ip address'分組而不是顏色。 – RedFilter 2010-04-29 02:55:36
很好的解釋,謝謝! – 2010-04-29 03:30:23