テクノロジ系応用問題

SQLのSELECT文でGROUP BY句を使用した場合、WHERE句とHAVING句の役割はどのように異なるか。最も適切なものはどれか。

A.WHERE句もHAVING句も、グループ化後の集計結果に対してフィルタリングを行う
✗ WHERE句はグループ化・集計が行われる前の行に適用されます。集計後のフィルタリングはHAVING句の役割です。
B.WHERE句はグループ化前の行に対して条件を適用し、HAVING句はグループ化後の集計結果に対して条件を適用する← 正解
✓ 正解です。WHERE句はGROUP BY前に行を絞り込み、HAVING句はGROUP BY後の集計結果(グループ)を絞り込みます。
C.WHERE句は集計関数を使用でき、HAVING句は使用できない
✗ 逆です。WHERE句では集計関数(COUNT、SUMなど)は使用できません。集計関数を条件に使えるのはHAVING句です。
D.HAVING句はグループ化前の行に対して条件を適用し、WHERE句はグループ化後の集計結果に対して条件を適用する
✗ WHERE句とHAVING句の説明が逆になっています。WHERE句がグループ化前、HAVING句がグループ化後です。

ITパスポート の問題一覧