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

分野:データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計)|実際に出題されたIPA過去問題

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

問題の図表(IPA公式問題冊子より引用)
図表:IPA公式問題冊子より
  1.  SELECT 部署コード,社員コード,名前 FROM A GROUP BY 社員コード
  2.  SELECT 部署コード,社員コード,名前 FROM A GROUP BY 部署コード
  3.  SELECT 部署コード,社員コード,名前 FROM A ORDER BY 社員コード,部署コード
  4.  SELECT 部署コード,社員コード,名前 FROM A ORDER BY 部署コード,社員コード
解答・解説を見る

正解:エ

AI解説

実行結果Bが部署コードでまとまり、その中で社員コード順に整列されているならば、集約用のGROUP BYではなく、ORDER BYで部署コード・社員コードの順に複数キーで並べ替える必要がある。 ア: GROUP BY 社員コードは集約(グルーピング)のための句であり、集約関数を伴わない単純な整列目的には適さず、社員コードでグルーピングしても部署コード順にまとまる保証はない。 イ: GROUP BY 部署コードも同様に集約のための句であり、単純な並べ替えの手段として使うのは適切ではない。 ウ: ORDER BY 社員コード, 部署コードでは、並べ替えの優先順位(第1ソートキー)が社員コードになってしまうため、部署コードでまとまり社員コード順に並ぶという求める結果Bにはならない。 エ: 正しい。ORDER BY 部署コード, 社員コードとすることで、まず部署コードでまとめ、その中を社員コード順に並べる、求める結果Bが得られる。 💡 複数列の並べ替えでは、ORDER BYに列挙した順序がそのままソートの優先順位になる。GROUP BYは集約(集計)のための句であり、単純な整列には使わない点に注意する。

出典:平成22年度 春期 応用情報技術者試験 午前 問33 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
📱 演習アプリで解く(無料・登録不要・2,640問収録)

「データベース」分野の攻略ポイント

関係モデル・正規化・SQL・トランザクション管理・障害回復・データベース設計が中心です。計算問題は少なく、定義と手順を正確に覚えていれば確実に得点できる、いわば「取りこぼしてはいけない」分野です。特に正規形とACID特性は毎年のように形を変えて出ます。

データベースの攻略ポイントをすべて見る(要点5項目・ひっかけ3項目)→

同じ分野(データベース(関係モデル・正規化・SQL・トランザクション/排他制御・障害回復・NoSQL・データベース設計))の過去問