2011-11-24 128 views
2

這個查詢返回它下面的列表,但是ids出現多次,我可以分組ids並加起來所有的戲劇,所以我只是得到一個列表唯一ID與它旁邊的戲劇總數。這是可能的SQL?sql server分組結果

SELECT [fkPlayerId],[plays] 
FROM [dPlaysPerDay] 
INNER JOIN dWinners 
ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId] 

53693 1 
53695 1 
53696 1 
53693 1 
53692 2 
53698 2 
53697 1 
53699 2 
53698 3 
53693 6 
53699 2 
53693 2 
53700 2 
53698 1 

回答

6

當使用GROUP BY,在SELECT的所有數據項,必須被包括在GROUP BY或放置在Aggregate Function

因此,fkPlayerId應進行分組,並與SUM()功能

SELECT [fkPlayerId], SUM([plays]) 
FROM [dPlaysPerDay] 
INNER JOIN dWinners ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId] 
GROUP BY fkPlayerId 

ORDER BY聚合函數使用plays,給這個數據項的別名,訂購:

SELECT [fkPlayerId], SUM([plays]) as TotalPlays 
FROM [dPlaysPerDay] 
INNER JOIN dWinners ON [dPlaysPerDay].[fkPlayerId]=dWinners.[pkWinnerId] 
GROUP BY fkPlayerId 
ORDER BY TotalPlays 
+0

很酷謝謝curt!我可以通過第二次訂購嗎?我知道你可以使用[專欄名稱]的順序,但在這裏我們得到一個沒有名字的coulmn? – user987723

+0

你當然可以!看我的編輯 – Curt