応用情報技術者データベース応用オリジナル・公式資料照合難易度★★★☆☆
department表に部門A,B,Cが各1行ある。employee表には所属部門Aが2人、Bが1人、Cは0人で、employee.idはNOT NULLの主キーである。次のSQLでCの人数はいくつになるか。 SELECT d.name, COUNT(e.id) FROM department d LEFT JOIN employee e ON e.department_id=d.id GROUP BY d.id,d.name;
A
Cの行が返らない
LEFT JOINなので社員がいないCも左側の部門表から残ります。INNER JOINとは異なります。
B
NULL
COUNTは対象の非NULL値が0件なら0を返します。NULLにはなりません。
C
0★ 正解
Cについて結合先のe.idはNULLになるためCOUNT(e.id)は0です。
D
1
COUNT(*)なら外部結合で残ったCの行も1と数えますが、ここではCOUNT(e.id)です。
解説
外部結合の件数集計ではCOUNT(*)とCOUNT(結合先の非NULLキー)を区別します。後者なら未所属部門を0人と数えられます。
根拠資料・確認情報
対応範囲:2026年度 応用情報技術者試験
資料確認日:2026-10-28