過去問解きまくり研究所 ホーム

平成24年度 春期 午前Ⅱ 問17

データベース

副問合せに関する問題

“商品”表に対して,次のSQL文を実行して得られる仕入先数は幾つか。

SELECT DISTINCT 仕入先コード FROM 商品
    WHERE (販売単価 - 仕入単価) >
          (SELECT AVG (販売単価 - 仕入単価) FROM 商品)

商品

商品コード商品名販売単価仕入先コード仕入単価
A001A1,000S1800
B002B2,500S22,300
C003C1,500S21,400
D004D2,500S11,600
E005E2,000S11,600
F006F3,000S32,800
G007G2,500S32,200
H008H2,500S42,000
I009I2,500S52,000
J010J1,300S61,000
答えと解説を見る

✓ これが正解ウ3

解説

差額の平均は360で、それを超えるのはS1、S4、S5の3社です。

このSQL文は、副問合せで全商品の販売単価から仕入単価を引いた差額の平均を求め、その平均より差額が大きい商品の仕入先コードを、DISTINCTで重複を除いて取り出します。各商品の差額は、Aが200、Bが200、Cが100、Dが900、Eが400、Fが200、Gが300、Hが500、Iが500、Jが300です。合計は3,600なので、平均は3,600÷10=360です。360を超えるのはD(S1)、E(S1)、H(S4)、I(S5)の4行です。仕入先コードの重複を除くとS1、S4、S5が残り、仕入先数は3になります。これは、副問合せで求めた集計値を条件に使い、DISTINCTで同じ値の行を一つにまとめる考え方です。

ほかの選択肢はなぜ違うのか

出典:平成24年度 春期 システム監査技術者試験 午前Ⅱ 問17

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)