基本情報技術者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

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで 基本情報技術者 合格を目指す。無料・課金なし。

更新: 2026/10/28