データベースの先生から、(Oracle サーバーで) クエリを書くように言われました: 2010 年の平均スコアが最も高いグループ ID を選択してください
私が書いた:
SELECT * FROM (
SELECT groupid, AVG(score) average FROM points
WHERE yr = 2010
AND score IS NOT NULL
GROUP BY groupid
ORDER BY average DESC
) WHERE rownum = 1;
私の先生は、この要求が「より良い」と私に言いました:
SELECT groupid, AVG(score) average FROM points
WHERE yr = 2010
GROUP BY groupid
HAVING AVG(score) >= ALL (
SELECT AVG(score) FROM points
WHERE yr = 2010
GROUP BY groupid
);
どれが最速/より良いですか? より良い解決策もありますか (Oracle のみ) ? ありがとう。