| 部門コード | 第 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 |
“部門別売上”表から,部門コードごと,期ごとの売上を得る SQL 文はどれか。 部門別売上 〔問合せ結果〕
イ. SELECT 部門コード,’第 1 期’ AS 期,第 1 期売上 AS 売上 FROM 部門別売上 UNION (SELECT 部門コード,’第 2 期’ AS 期,第 2 期売上 AS 売上 FROM 部門別売上) ORDER BY 部門コード,期
横持ち(部門ごとに第1期売上・第2期売上が列で並ぶ)の表を、縦持ち(部門コード・期・売上の行)に変換するSQLを問う問題である。第1期分を取り出すSELECTと第2期分を取り出すSELECTを、行方向に積み上げる和演算(UNION)で結合すれば、各部門について第1期・第2期の2行が得られ、求める結果になる。したがって正解はイ。
ap-2021r03a-a の過去問一覧へ戻る・問29