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

令和3年度 秋期 午前 問29

データベース

期ごとの売上を得るSQL文

“部門別売上”表から,部門コードごと,期ごとの売上を得る SQL 文はどれか。

〔表〕部門別売上

部門コード   第 1 期売上   第 2 期売上
D01          1,000         4,000
D02          2,000         5,000
D03          3,000         8,000

〔問合せ結果〕

部門コード   期      売上
D01          第 1 期  1,000
D01          第 2 期  4,000
D02          第 1 期  2,000
D02          第 2 期  5,000
D03          第 1 期  3,000
D03          第 2 期  8,000
答えと解説を見る

✓ これが正解イSELECT 部門コード, '第 1 期' AS 期, 第 1 期売上 AS 売上 FROM 部門別売上 UNION (SELECT 部門コード, '第 2 期' AS 期, 第 2 期売上 AS 売上 FROM 部門別売上) ORDER BY 部門コード, 期

解説

横に並ぶ二列を縦の行へ倒すのは行の足し算です。

設問は、期ごとの売上が横に二列で並んでいる表から、期を縦方向へ倒した問合せ結果を得る SQL 文を、四通りの中から選ばせています。四つの文は前半がほとんど同じで、二つの問合せをどうつなぐかという一語だけが違うので、そこだけを見比べれば決まります。ですから見分けの軸は、そのつなぎ方が、二つの結果の行を上下に足し合わせるものかどうか、という一点だけです。元の表は三行、求める結果は六行ですから、行が増える向きの演算でなければ届きません。行を足し合わせる集合演算がその働きに当たります。

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

この問題の用語

出典:令和3年度 秋期 応用情報技術者試験 午前 問29

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