| 部門コード | 第 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 |
応用情報技術者試験 令和3年度秋期 午前 問29「“部門別売上”表から,部門コードごと,期ごとの売上を得る SQL 文はどれか。 …」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約63%です。
イ. SELECT 部門コード,’第 1 期’ AS 期,第 1 期売上 AS 売上 FROM 部門別売上 UNION (SELECT 部門コード,’第 2 期’ AS 期,第 2 期売上 AS 売上 FROM 部門別売上) ORDER BY 部門コード,期
正答率 63.2%(663人中 419人が正解)
部門別売上表は期ごとに列が分かれている。これを部門コード・期・売上の縦持ちの形にするには、第1期を取り出す SELECT と第2期を取り出す SELECT を UNION で縦に連結する。UNION は二つの結果の行を合わせて重複を除く集合演算なので、6行の結果が得られ、ORDER BY で並べ替えられる。
応用情報技術者試験 令和3年度秋期 午前 の過去問一覧に戻る・問29