SQL select和function语句

时间:2017-02-15 00:53:31

标签: sql

好的,我做了一个选择声明并且没有像我希望的那样做,我已经尝试按照我的意愿调整它,但它不会工作。我用我写的选择添加了它看起来像的图像。图片底部有三个总计。我想要一个包含TotalSalary,AvreageSalary和所有玩家数量的行。希望这是有道理的。

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

1 个答案:

答案 0 :(得分: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'

请注意,原始查询似乎很混乱,因为您将DISTINCTGROUP BY混合在一起。