本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和3年度 秋期 応用情報技術者試験問題と解説

問29

“部門別売上”表から、部門コードごと、期ごとの売上を得るSQL文はどれか。
部門別売上                〔問合せ結果〕
 ┌─────┬─────┬─────┐
 │部門コード│第1期売上│第2期売上│ 部門コード 期   売上
 ┝━━━━━┿━━━━━┿━━━━━┥ −−−−−−−−−−−−
 │  D01  │  1,000 │  4,000 │   D01  第1期 1,000
 ├─────┼─────┼─────┤   D01  第2期 4,000
 │  D02  │  2,000 │  5,000 │   D02  第1期 2,000
 ├─────┼─────┼─────┤   D02  第2期 5,000
 │  D03  │  3,000 │  8,000 │   D03  第1期 3,000
 └─────┴─────┴─────┘   D03  第2期 8,000

ア SELECT 部門コード, '第1期' AS 期、第1期売上 AS 売上
  FROM 部門別売上
  INTERSECT
  (SELECT 部門コード, '第2期' AS 期, 第2期売上 AS 売上
   FROM 部門別売上)
  ORDER BY 部門コード, 期

イ SELECT 部門コード, '第1期' AS 期、第1期売上 AS 売上
  FROM 部門別売上
  UNION
  (SELECT 部門コード, '第2期' AS 期, 第2期売上 AS 売上
   FROM 部門別売上)
  ORDER BY 部門コード, 期

ウ SELECT A.部門コード, '第1期' AS 期、A.第1期売上 AS 売上
  FROM 部門別売上 A
  CROSS JOIN
  (SELECT B.部門コード, '第2期' AS 期, B.第2期売上 AS 売上
   FROM 部門別売上 B)
  ORDER BY 部門コード, 期

エ SELECT A.部門コード, '第1期' AS 期、A.第1期売上 AS 売上
  FROM 部門別売上 A
  INNER JOIN
  (SELECT B.部門コード, '第2期' AS期, B.第2期売上 AS 売上
   FROM 部門別売上 B) T ON A.部門コード = T.部門コード
  ORDER BY 部門コード, 期


正解


解説

ア INTERSECT句は、2つの表のどちらにも存在する行を抽出する演算子である。

イ 正しい。UNION句は、複数のSELECT文で得られた結果を1つにまとめる演算子である。

ウ CROSS JOIN句は、交差結合であり、2つのテーブルのすべてのレコードを結合する演算子である。

エ INNER JOIN句は、内部結合であり、2つのテーブルの互いの条件に一致するレコードを抽出して結合する演算子である。

問28 目次 問30