2016-04-17 6 views
0

BY MAX(SUM())SQLグループからIDを取得します:は、私は、次の画像</p> <p><img src="https://i.stack.imgur.com/YOwOJ.png" alt="Result of query"></p> <p>に私はそれがある表示するために使用したクエリを取得した結果からPlayerIDを取得しようとしている

SELECT PlayerIDFK, sum(TwoPointMade) as TwoPointMade, sum(ThreePointMade) as ThreePointMAde 
FROM PlayerPerformance GROUP BY PlayerIDFK; 

私も正解である。この場合47で両方の列の和の最大値を返す別のクエリを持っていますが、私はまた、PlayerIDFKを取得したいです。

SELECT MAX(SUM(TwoPointMade) + SUM(ThreePointMade)) AS "Points" 
FROM PlayerPerformance GROUP BY PlayerIDFK; 

クエリを使用してプレーヤーIDを取得しようとすると、私は単一グループのグループ機能を取得しません。

SELECT PlayerIDFK, MAX(SUM(TwoPointMade) + SUM(ThreePointMade)) AS "Points" 
FROM PlayerPerformance GROUP BY PlayerIDFK; 
+3

使用する技術に一致するタグのみを使用してください。それは[tag:mysql]、[tag:sql-server]、または[tag:oracle]ですか? – axiac

+0

これは 'GROUP BY'の仕事ではありません。 'GROUP BY'はテーブルから行を返しません。新しい行が生成されます。 – axiac

答えて

0

使用order byrownum(または12cは+でfetch first 1 row only):これは、イムは使用しようとしたクエリである

SELECT * 
FROM (SELECT PlayerIDFK, sum(TwoPointMade) as TwoPointMade, sum(ThreePointMade) as ThreePointMAde 
     FROM PlayerPerformance 
     GROUP BY PlayerIDFK 
     ORDER BY (sum(TwoPointMade) + sum(ThreePointMade)) desc 
    ) pp 
WHERE rownum = 1; 
+0

行5のエラー: ORA-00935:グループ関数がネストされています – Jaskowaty

+0

ORDER BYでsum()ラッパーを削除してみます。 – Mike

関連する問題

 関連する問題