2017-02-15 115 views
1

好吧,我做了一個select語句,它沒有按照我所希望的那樣做,我試圖按照我的意願調整它,但它不會工作。我添加了我寫的選擇內容的圖像。圖片底部有三個總數。我需要TotalSalary,AvreageSalary和所有玩家數量。希望這是有道理的。SQL選擇和函數語句

SELECT DISTINCT teamID as Team, yearid as 'Year', 
     SUM(salary) AS TotalSalary, AVG(salary) AS AverageSalary, 
     Count(playerID) as players 
FROM Salaries 
GROUP BY teamID, salary, yearID, playerID 
HAVING teamID = N'SEA' 
    and yearID = N'2010' 

enter image description here

+0

您使用的是什麼版本的SQL? –

+0

那麼除了你需要的總數,一切都可以嗎? –

+0

與你的問題沒有關係,但「distinct」這個詞是多餘的,因爲你有一個「group by」子句。 –

回答

1

您可以使用GROUPING SETS

SELECT teamID as Team, 
     yearid as Year, 
     SUM(salary) AS TotalSalary, 
     AVG(salary) AS AverageSalary, 
     COUNT(playerID) AS players 
FROM Salaries 
GROUP BY GROUPING SETS((teamID, yearid),()) 
HAVING teamID = N'SEA' AND 
     yearID = N'2010' 

請注意,您的原始查詢似乎混淆,因爲你與GROUP BY混合DISTINCT

+0

非常感謝你的幫助。感謝您指出真正有意義的差異,甚至沒有想到它。 – CJ15

+0

@ CJ87我稍微改變了我的答案。我想你應該在這裏使用'GROUPING SETS'。 –