平成22年度春期 問33 / 80

平成22年度 春期 応用情報技術者試験 午前 問33

表Aから実行結果Bを得るためのSQL文はどれか。

A

社員コード 名前 部署コード 給料
10010 伊藤幸子 101 200,000
10020 斉藤栄一 201 300,000
10030 鈴木裕一 101 250,000
10040 本田一弘 102 350,000
10050 山田五郎 102 300,000
10060 若山まり 201 250,000

実行結果B

部署コード 社員コード 名前
101 10010 伊藤幸子
101 10030 鈴木裕一
102 10040 本田一弘
102 10050 山田五郎
201 10020 斉藤栄一
201 10060 若山まり

キーボード:1〜4 で解答 → 次の問題 ← 前の問題

正解と解説を見る

正解:エ

実行結果Bは、6行すべてがそのまま出力されており、部署コードの昇順に並び、同じ部署コードの中では社員コードの昇順に並んでいます。したがって、集約(GROUP BY)ではなく、並べ替え(ORDER BY 部署コード, 社員コード)を行うSQL文です。

各選択肢の確認

  • ア: GROUP BY 社員コード 誤り。GROUP BY は行をグループにまとめる指定で、並べ替えの指定ではありません。また、グループ化に使っていない部署コードや名前を、集約関数を使わずに選択することはできません。

  • イ: GROUP BY 部署コード 誤り。部署コードごとにグループ化すると1部署1行にまとめられることになり、結果Bのように全行を出力することはできません(社員コードや名前も選択できません)。

  • ウ: ORDER BY 社員コード, 部署コード 誤り。社員コード順に並ぶため、10010, 10020, 10030 … の順になり、結果Bと一致しません。

  • エ: ORDER BY 部署コード, 社員コード 正しい。部署コードの昇順、同じ部署内では社員コードの昇順に並び、結果Bと一致します。


答え

エ: SELECT 部署コード, 社員コード, 名前 FROM A ORDER BY 部署コード, 社員コード

出典:平成22年度 春期 応用情報技術者試験 午前 問33

平成22年度春期の他の問題