FE Study
FE Study メニュー

学習記録はこのブラウザー内に保存されます。

ホーム問題を解く
ログイン不要・無料で学習

ONE QUESTION, ONE STEP

SQLを学ぼう

選んで、確かめて、理解する。焦らず進めましょう。

科目Aデータベース標準
QUESTION 28

departments表とemployees表は次のとおりである。SQLの結果で、dept_idが1、2、3の順に並んだ人数はどれか。employee_idは主キーである。 departments dept_id | name 1 | 営業 2 | 開発 3 | 総務 employees employee_id | dept_id 101 | 1 102 | 1 103 | 2 SELECT d.dept_id, COUNT(e.employee_id) FROM departments d LEFT JOIN employees e ON d.dept_id = e.dept_id GROUP BY d.dept_id ORDER BY d.dept_id;

出典:本サイト オリジナル教材(2026年)

本サイトで独自に作成。IPAの試験問題からの転載ではありません。

公開日:

解答を一つ選んでください

選択肢を選んで、答え合わせをしましょう。

回答せずに正解・解説を確認する

正解:ア 2、1、0

この表示だけでは、回答数や正答率は変わりません。

解説

LEFT JOINは左側の部署をすべて残します。部署1には社員2人、部署2には社員1人が対応します。部署3には対応する社員がいないため、結合結果の社員列はNULLになります。COUNT(e.employee_id)はNULLを数えないので、部署3の人数は0です。

ア

部署1は2人、部署2は1人、部署3は対応する非NULLの社員IDがなく0人です。

イ

部署3でCOUNT(*)を使った場合には1になりますが、このSQLは社員IDを数えています。

ウ

部署1には社員101と102の2人がいます。GROUP BYしても人数は失われません。

エ

ON句で部署IDを照合するので、全社員を各部署に結び付けるわけではありません。

関連知識

内部結合では対応する社員のいない部署3は結果に現れません。左外部結合とCOUNT(右表の主キー)を組み合わせると、該当件数0の対象も一覧にできます。

間違えやすいポイント

外部結合でできたNULLの行を、実際の社員1人と数えないこと。COUNT(*)とCOUNT(列)を区別します。

覚え方

左は残す。右の非NULLキーを数える。

実務での意味

注文が一度もない商品や、担当者が未配置の部署も含めて集計する画面に利用できます。

解説:本サイト編集部によるオリジナル文章

この問題の前後に、データベースの基礎知識ガイドで、 仕組み・比較・解き方を確認できます。 手順を確かめたい方は売上と入金を結合したら金額が倍に? 集計する粒度からSQLを直すの実習へ。 この問題の誤りを報告する(GitHub)。問題IDとURLを入力した下書きが開きます。自動投稿は行いません。 投稿は公開されるため、氏名・住所・メールアドレス・学習記録は記入しないでください。 詳しくはお問い合わせ窓口をご覧ください。