過去問解きまくり研究所 ホーム

平成22年度 春期 午前 問33

データベース

SQL文

表 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    │ 若山まり
答えと解説を見る

✓ これが正解エSELECT 部署コード,社員コード,名前 FROM A ORDER BY 部署コード,社員コード

解説

並べ替えのキーは部署コードが先、社員コードが後です。

結果の表と元の表を見比べるときは、行数、列の並び、行の並びの順に当てると速く済みます。まず行数です。元の表は 6 行で、実行結果も 6 行あり、社員が一人ずつそのまま残っています。部署コードでまとめる集約が働いていれば行数は 3 行に減るはずなので、ここで部署コードで集約する SQL 文は候補から外れます。次に列の並びですが、四つの文はいずれも同じ順に列を選んでいるので差が付きません。残るのは行の並びだけです。結果を上から見ると部署コードが 101、101、102、102、201、201 と小さい順に並び、同じ部署の中では社員コードが小さい順に並んでいます。つまり最初に部署コードで並べ、それが同じときだけ社員コードで並べたことになります。並べ替えのキーは左に書いたものが優先されるので、部署コード、社員コードの順に指定した文が正解です。

ほかの選択肢はなぜ違うのか

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

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)