ORACLE MASTER Silver SQL 26aiグループ集計と複数表の結合オリジナル・公式資料照合難易度★★★☆☆

Oracle AI Database 26aiのpayroll(dept_id, salary NUMBER)の全行は(10,100)、(10,NULL)、(10,300)、(20,50)である。次のSQLで返る行はどれか。 SELECT dept_id, COUNT(*) AS rows_n, COUNT(salary) AS paid_n, AVG(salary) AS avg_pay FROM payroll GROUP BY dept_id HAVING COUNT(salary) >= 2;

A
部署10のみ: rows_n=3、paid_n=2、avg_pay=200★ 正解

COUNT(*)とCOUNT(salary)の対象を分け、HAVINGを集計後の件数で判定しています。

B
部署10のみ: rows_n=3、paid_n=3、avg_pay=400/3

COUNT(salary)とAVG(salary)はNULLをこのように1件・0円として数えません。

C
部署10のみ: rows_n=2、paid_n=2、avg_pay=200

NULLの給与行も表の1行です。COUNT(*)はその行を除きません。

D
部署10と部署20の両方

HAVINGの条件は各部署の非NULL給与件数が2以上で、部署20の1件は該当しません。

解説

部署10は行数3、給与が非NULLの件数2、平均(100+300)/2=200です。部署20はCOUNT(salary)=1なのでHAVINGを満たしません。NULLを給与0の1件として平均の分母へ加えないことがポイントです。

根拠資料・確認情報

対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)

資料確認日:2026-10-29

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで ORACLE MASTER Silver SQL 26ai 合格を目指す。無料・課金なし。

更新: 2026/10/28