ウカマル応用情報技術者ログイン

令和3年度 秋期 応用情報技術者 問29

テクノロジ系

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

部門別売上

部門コード第1期売上第2期売上
D011,0004,000
D022,0005,000
D033,0008,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
選択肢
正解と解説

正解 イ

第1期と第2期の行を縦に足し合わせて1つの結果にするのは、和集合を求めるUNIONです。

問合せ結果は、各部門の第1期の行(3行)と第2期の行(3行)を縦に並べた6行です。'第1期' AS 期のように定数を列として出力すると、期の列を作れます。第1期売上を売上とするSELECTと、第2期売上を売上とするSELECTを用意します。2つの結果をUNIONで和集合にすると6行になります。最後にORDER BY 部門コード, 期で並べると、問合せ結果と一致します。

ア:INTERSECTは、両方の結果に共通する行だけを返す積集合の演算です。期の値が'第1期'と'第2期'で必ず異なるので、結果は0行になります。

ウ:CROSS JOINは3行×3行の直積で9行を作ります。SELECT句がAの列だけなので、第1期の行が重複して並び、第2期の行は出ません。

エ:部門コードで内部結合すると3行になります。SELECT句がAの列だけなので、第1期の3行しか出ません。

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

全年度から出題。10問で実力を判定します。登録不要。

出典:令和3年度 秋期 応用情報技術者試験 問29(独立行政法人情報処理推進機構)

解説と用語ページは生成 AI が書き、別の生成 AI が確かめています。作り方