ORACLE MASTER Silver SQL 26ai条件・集計・結合の実行結果オリジナル・公式資料照合難易度★★★☆☆
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;
A
5、5、3
COUNT(channel)とCOUNT(DISTINCT channel)はNULLを数えません。NULLをもう1種類として数える説明は誤りです。
B
4、4、2
COUNT(*)は全行を数えるため、channelがNULLの1行も含めて5です。
C
5、4、2★ 正解
全行数5、非NULL行数4、非NULLの異なる値2をそれぞれ表しています。
D
5、4、4
DISTINCTを指定したn3では重複するWEBとAPPを各1回にまとめるため、4ではなく2です。
解説
COUNT(*)はNULLを含む5行を数えます。COUNT(channel)はNULL以外の4行を数えます。COUNT(DISTINCT channel)は非NULL値の重複を除くため、WEBとAPPの2種類です。
根拠資料・確認情報
対応範囲: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;
問題 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
);
問題 4
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;