GROUP BY 後の絞り込み句

選択問題 データベース
SQL で、部門ごとに平均給与を集計し、その平均が 30 万円を超える部門だけを結果に残したい。集計結果に対する絞り込みに用いる句はどれか。

解説を見る
集約関数(AVG など)の結果でグループを絞り込むには HAVING を使う。WHERE は GROUP BY より前に個々の行へ適用されるため、集約結果 AVG(給与) を条件にできない。処理順は WHERE → GROUP BY → HAVING → SELECT → ORDER BY。
誤答の解説
BWHERE はグループ化の前に各行を評価する句で、集約関数 AVG を条件に書けない。
Cこれは各行の給与での絞り込みで、部門平均の条件になっていない。
DORDER BY は並べ替え専用で、絞り込みには使えない。
ヒント

・個々の行の絞り込みは WHERE、集約後の絞り込みは HAVING。

関連する問題

← 基本情報の一覧へ