2017-02-15 12 views
1

OK私はselect文を作っていましたが、私が望むようにしていませんでした。私はそれをしたいと思うように微調整しようとしましたが、うまく動作しません。私が書いた選択で、それがどのように見えるかのイメージを追加しています。写真の下部に3つの合計があります。私はTotalSalary、AvreageSalary、およびすべてのプレイヤー数で1つの行が必要です。うまくいけばそれは理にかなっている。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

あなたの質問には関係ありませんが、 'group by'節があるので' distinct'という言葉は冗長です。 –

答えて

1

あなたはGROUPING SETS使用することができます:あなたはGROUP BYDISTINCTを混合しているので、あなたの元のクエリは、混乱しているようだということ

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' 

注意を。

+0

助けをたくさんいただきありがとうございました。実際に意味をなさないDistinctを指摘してくれてありがとうと思っていました。 – CJ15

+0

@ CJ87私は私の答えを少し変えました。ここでは 'GROUPING SETS'を使うべきだと思います。 –

関連する問題