2016-11-09 72 views
-2

所以,我現在有一個表列出這樣SQL查詢前10勝

gameID | userID | WinLose 
1  | 1  | win 
2  | 1  | win 
3  | 1  | lose 
4  | 2  | win 
5  | 2  | lose 
6  | 2  | win 

它需要用戶ID作爲從用戶表的外鍵,並記錄每場比賽出場,與天氣沿着用戶的好評或丟失。

有誰能告訴我怎樣編寫一個查詢,將每個用戶贏得一次遊戲的次數加起來,然後列出10個最高值?

我試圖顯示最多贏得前10名的用戶。

謝謝你的幫助。

+2

SO是一個Q/A網站,而不是免費的編碼服務。請提供您所嘗試的內容以及您在嘗試中遇到的問題。 – Shadow

+0

只有6結果 – Strawberry

+0

請參閱http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-bea-a-非常簡單的SQL查詢 – Strawberry

回答

1

您可以countgroup by條款試圖讓用戶的總和,然後order by對結果進行排序,並獲得最高10 limit

select userID 
    , count(*) as total_wins 
from tbl 
where WinLose='win' 
group by userID 
order by total_wins desc 
limit 10 

或有條件sum

select userID 
    , sum(WinLose='win') as total_wins 
from tbl 
group by userID 
order by total_wins desc 
limit 10 
+0

'sum'?爲什麼不計算(*)...哪裏WinLose ='win''? –