平成22年度 春期 応用情報技術者試験 午前 問33
テクノロジ/データベース表Aから実行結果Bを得るためのSQL文はどれか。 表A(社員コード,名前,部署コード,給料) 10010,伊藤幸子,101,200000 10020,斉藤栄一,201,300000 10030,鈴木裕一,101,250000 10040,本田一弘,102,350000 10050,山田五郎,102,300000 10060,若山まり,201,250000 実行結果B(部署コード,社員コード,名前) 101,10010,伊藤幸子 101,10030,鈴木裕一 102,10040,本田一弘 102,10050,山田五郎 201,10020,斉藤栄一 201,10060,若山まり (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成22年度 春期 応用情報技術者試験 午前 問33
- アSELECT 部署コード,社員コード,名前 FROM A GROUP BY 社員コード
- イSELECT 部署コード,社員コード,名前 FROM A GROUP BY 部署コード
- ウSELECT 部署コード,社員コード,名前 FROM A ORDER BY 社員コード,部署コード
- エSELECT 部署コード,社員コード,名前 FROM A ORDER BY 部署コード,社員コード
正解:エ
解説
実行結果Bは,部署コードの昇順に並び,さらに同じ部署コード内では社員コードの昇順に並んでいます。これはSELECT文にORDER BY 部署コード,社員コードを指定することで得られる並び順です。
選択肢ごとの解説
- ア誤り。GROUP BY 社員コードは集計処理を行う句であり,社員コードごとに1行に集約されてしまうため,表Bのような全件表示にはなりません。
- イ誤り。GROUP BY 部署コードも集計処理を行う句であり,部署コードごとに1行に集約されてしまいます。
- ウ誤り。ORDER BY 社員コード,部署コードでは社員コードを優先して並べ替えるため,表Bのような部署コード優先の並び順にはなりません。
- エ正しい。ORDER BY 部署コード,社員コードとすることで,表Bのとおり部署コード,社員コードの順に並び替えられます。