2013-07-04 19 views
1

我目前的項目基本上是從Facebook導入我的朋友列表,然後選擇頻率最高的名字,即最常見的名稱。我一直在試圖建立子查詢這樣的:如何在MySQL中動態選擇具有最大頻率的名稱

SELECT COUNT(*) as count, first_name 
FROM Friends GROUP BY first_name ORDER BY count DESC; 

,然後在那之後我很爲難......我一直試圖在where子句中使用MAX功能,但它止跌」 t編譯,所以然後我試圖把它放在一個子查詢中,我仍然無法得到它的工作。我需要使用連接嗎?

+3

爾LIMIT 1?!?!? – Strawberry

+0

什麼不起作用?你得到的輸出是不正確的? – ethrbunny

回答

2
SELECT first_name 
FROM  friends 
GROUP BY first_name 
ORDER BY COUNT(*) DESC 
LIMIT 1 

或本,即可以返回多行如果有多個名字有重複的最大數量:

SELECT first_name 
FROM friends 
GROUP BY first_name 
HAVING COUNT(*) = (SELECT COUNT(*) FROM FRIENDS 
        GROUP BY first_name ORDER BY COUNT(*) DESC LIMIT 1)