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
同じレッスンの問題
問題 1
Oracle AI Database 26aiで、次のa、bの値の組はどれか。すべてNUMBERの数値として評価する。
SELECT COALESCE(240 / NULLIF(0, 0), -1) AS a,
COALESCE(CAST(NULL AS NUMBER), 0, 99) AS b
FROM dual;
問題 2
Oracle AI Database 26aiのvisits(channel VARCHAR2(10))には、'WEB'、'WEB'、'APP'、'APP'、NULLの5行だけがある。次のn1、n2、n3の組はどれか。
SELECT COUNT(*) AS n1, COUNT(channel) AS n2,
COUNT(DISTINCT channel) AS n3
FROM visits;
問題 3
Oracle AI Database 26aiで、employees(emp_id,dept_id)には(1,10)、(2,20)、(3,NULL)、blocked(dept_id)には10、NULLだけがある。次のSQLが返すemp_idの集合はどれか。各列はNUMBERで、表示順は問わない。
SELECT e.emp_id FROM employees e
WHERE NOT EXISTS (
SELECT 1 FROM blocked b WHERE b.dept_id = e.dept_id
);