ORACLE MASTER Silver SQL 26ai条件・集計・結合の実行結果オリジナル・公式資料照合難易度★★★☆☆

Oracle AI Database 26aiで、departments(dept_id PRIMARY KEY)は10、20、30、employees(emp_id PRIMARY KEY,dept_id)は(1,10)、(2,10)、(3,20)だけである。次のSQLが返す1行の(dept_id,joined_rows,employees_n)はどれか。 SELECT d.dept_id, COUNT(*) AS joined_rows, COUNT(e.emp_id) AS employees_n FROM departments d LEFT JOIN employees e ON d.dept_id = e.dept_id GROUP BY d.dept_id HAVING COUNT(e.emp_id) = 0;

A
(30,0,0)

左外部結合は部署30をNULL補完行として1行残すため、COUNT(*)は0ではありません。

B
(30,1,1)

e.emp_idがNULLの行はCOUNT(e.emp_id)には含めません。従業員件数は0です。

C
(10,2,2)

部署10のCOUNT(e.emp_id)は2なので、HAVING COUNT(e.emp_id)=0を満たしません。

D
(30,1,0)★ 正解

部署30のNULL補完された結合行はCOUNT(*)では1行、非NULLの従業員IDは0件と数えられます。

解説

部署30には対応する従業員がいませんが、左外部結合は従業員側をNULLで補った行を残します。そのグループのCOUNT(*)は1、COUNT(e.emp_id)は0です。HAVINGによって従業員のいる部署10と20は除かれます。

根拠資料・確認情報

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

資料確認日:2026-10-29

同じレッスンの問題

アプリで毎日学習しよう

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

更新: 2026/10/28
Oracle AI Database 26aiで、departments(dep | ORACLE MASTER Silver SQL 26ai 練習問題・解説 | Mondaily