2012-08-28 100 views
0

的occurence比方說,我有這樣的MYSQL表登錄:MYSQL查詢總結一些列

id---name---location---login_date 
---------------------------------- 
1----mike----usa-----21.08.2012 
2----tony----uk------22.08.2012 
3----tony----uk------23.08.2012 
4----david--france---24.08.2012 
5----mike----usa-----25.08.2012 
6----tony----uk------26.08.2012 
7----ash--france----27.08.2012 

我需要這個輸出。結果將按名稱分組,按登錄次數排序。
這種情況下最快的查詢是什麼?

login_times---name 
3-------------tony 
2-------------mike 
1-------------david 
1-------------ash 
+1

查詢以獲得您想要的結果很簡單。 「最快」將僅僅依賴於SQL語句;你的索引,服務器硬件規格等等。 – Tony

+0

@Tony謝謝你的建議。 – trante

回答

3
SELECT COUNT(*) AS 'login_times', name 
FROM logins 
GROUP BY name 
ORDER BY login_times DESC 

http://sqlfiddle.com/#!2/6e176/9

whathaveyoutried.com

+2

你忘了按登錄時間排序 – Tony

+0

我用「SELECT *」得到整個表格,然後用「foreach」循環響應並增加相關數組鍵的login_time :) – trante

+0

編輯答案,現在查詢正確,sqlfiddle作爲獎勵;) – Felix