基本情報技術者OS・データベースの実践オリジナル・公式資料照合難易度★★★☆☆
売上表salesには(部門,金額)として(A,100),(A,200),(B,50),(B,80)だけがある。次のSQLの結果として正しいものはどれか。 SELECT department, SUM(amount) FROM sales GROUP BY department HAVING SUM(amount) >= 150; 列departmentは部門、amountは金額である。
A
Aが300の1行★ 正解
部門ごとに合計するとA=300、B=130で、HAVINGの条件を満たすAだけが残ります。
B
Aが200の1行
HAVINGは元の金額200だけを抽出する条件ではありません。Aの100も合計対象です。
C
Aが300、Bが130の2行
Bの合計130は150未満なのでHAVINGで除外されます。
D
金額が150以上の元の行すべて
HAVINGは集約後のグループを絞ります。元の各行を金額で絞るWHEREとは役割が異なります。
解説
GROUP BYで部門ごとに集約した後、HAVINGで集計値を条件判定します。結果は(A,300)の1行です。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B
資料確認日:2026-10-28