難易度・正答率・重要度
- 難易度:★★★☆☆(SQLの自己結合と条件式)
- 正答率:★★☆☆☆(構造と目的の理解が必要)
- 重要度:★★★☆☆(データ分析・併売分析の基礎)
問題文
以下に示す、ある小売店における販売データ「取引記録」から併売分析を行いたい。異なる2つの商品の組み合わせに対して、それらが同時に取引された件数を求める「集計結果」を得るためのSQL文を考える。

以下のSQL文の空欄①~③に入る記述の組み合わせとして、最も適切なものを下記の解答群から選べ。
SELECT
A.商品ID as 商品1, B.商品ID as 商品2, COUNT(*) as 件数
FROM
取引記録 as A, 取引記録 as B
WHERE
① and ②
GROUP BY
A.商品ID, B.商品ID
ORDER BY
件数 ③;
〔解答群〕
ア
①:A.取引ID = B.取引ID ②:A.商品ID < B.商品ID ③:DESC
イ
①:A.取引ID = B.取引ID ②:A.商品ID < B.商品ID ③:ASC
ウ
①:A.取引ID = B.取引ID ②:A.商品ID <> B.商品ID ③:ASC
エ
①:A.取引ID < B.取引ID ②:A.商品ID = B.商品ID ③:DESC
オ
①:A.取引ID < B.取引ID ②:A.商品ID <> B.商品ID ③:ASC
出典: 中小企業診断協会|2023年度 第1次試験問題|経営情報システム(PDF)
解答
- 正解:ア(①:A.取引ID = B.取引ID ②:A.商品ID < B.商品ID ③:DESC)
解説(選択肢ごとの評価)
- ①:A.取引ID = B.取引ID
同一の取引内で併売された商品を抽出するために必要な条件。自己結合により同じ取引IDのレコードをペアにする。 - ②:A.商品ID < B.商品ID
商品ペアの重複(P001-P002とP002-P001)を防ぐために、大小比較で一方向に限定する。≠では重複が残る。 - ③:DESC
件数の多い順に並べることで、併売頻度の高い組み合わせを上位に表示できる。分析目的に合致。
他選択肢の誤り
- イ: 並び順が昇順(ASC)であり、分析上は頻度の高い順が望ましい。
- ウ: ≠では重複ペアが含まれるため、集計結果が二重になる。
- エ: 取引IDの大小比較は意味がなく、商品IDが同じという条件も併売分析に不適。
- オ: 取引IDの大小比較は不要。≠では重複ペアが含まれる。
学習のポイント
- 自己結合: 同一テーブルを別名で2回参照し、ペア分析や比較に活用。
- 併売分析: 商品ペアの出現頻度を集計し、マーケティングやレコメンドに活用。
- 重複排除: 商品IDの大小比較でペアの一意性を確保。
- ORDER BY DESC: 分析結果は頻度順に並べるのが基本。