中小企業診断士 過去問
令和7年度(2025年)
問172 (経営情報システム 問12)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

中小企業診断士試験 令和7年度(2025年) 問172(経営情報システム 問12) (訂正依頼・報告はこちら)

あるメーカーでは、カスタマーサポートや新製品のプロモーションなどのために、Webサイトを通じて顧客にユーザ登録と購入した商品の登録を働きかけている。以下に示す「登録ユーザ」表は、ユーザ登録済みの顧客に関するデータを表し、また「商品登録管理」表は、ユーザ登録済みの顧客が自身で登録した、購入済み商品に関するデータを表している。なお、ユーザ登録をしている顧客の中には、商品登録を行っていない者もいる。
問題文の画像
  • ①:INNER JOIN  ②:登録ユーザ.顧客ID,商品登録管理.商品コード
  • ①:INNER JOIN  ②:登録ユーザ.顧客ID,登録台数
  • ①:RIGHT OUTER JOIN  ②:登録ユーザ.顧客ID
  • ①:LEFT OUTER JOIN  ②:登録ユーザ.顧客ID,商品登録管理.商品コード
  • ①:LEFT OUTER JOIN  ②:登録ユーザ.顧客ID,登録台数

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (1件)

01

SQLは頻出なので、テキストでよく対策しておきましょう。

 

SQL文の「COUNT(商品登録管理.商品コード) AS 登録台数」を見ると、

顧客が購入した商品コードごとに登録した商品の件数を数えて「登録台数」の列として吐き出させようとしています。

一方、問題文に「ユーザ登録をしている顧客の中には、商品登録を行っていない者もいる。」とあり、

「購入商品登録状況」を見ると、登録台数0件の顧客がいます。

C0002とC0005ですね。

 

この場合、「登録ユーザ ① 商品登録管理」で①に「INNER JOIN」や「RIGHT OUTER JOIN」を入れてしまうと、購入商品の登録をしていない顧客の情報は無視されます。

しかし、すべての顧客の情報を出したいので、登録してないC0002とC0005も「0」として出力したい。

その場合、上記①には、「LEFT OUTER JOIN」が入ります。

 

次に「GROUP BY」ですが、これは、何を単位に数えるか、という指定で、ここでは、「顧客」が持つ「商品」台数を数えたい。

なので、必要な情報は「顧客ID」と「商品コード」です。

よって②には「登録ユーザ.顧客ID,商品登録管理.商品コード」が入ります。

なお、「登録台数」は、顧客が持つ商品台数を数えた後に出てくる数字で、現時点でのテーブルにはそのような数字は存在しないので、ここでの指定としては不適切です。

選択肢4. ①:LEFT OUTER JOIN  ②:登録ユーザ.顧客ID,商品登録管理.商品コード

上記より、この選択肢が正解です。

まとめ

SQL文は、問題文を読んでいれば確実に削除できる選択肢があるので、句の意味がわからなくても、まずは選択肢をしぼって正答確率を上げてください。

参考になった数0