戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2010年 春期 午前233


問題文

表Aから実行結果Bを得るための SQL文はどれか。
応用情報技術者 2010年 春期 午前2 問33の問題画像

選択肢

SELECT 部署コード、 社員コード、 名前 FROM A
 GROUP BY 社員コード
SELECT 部署コード、 社員コード、 名前 FROM A
 GROUP BY 部署コード
SELECT 部署コード、 社員コード、 名前 FROM A
 ORDER BY 社員コード、 部署コード
SELECT 部署コード、 社員コード、 名前 FROM A
 ORDER BY 部署コード、 社員コード
(正解)

表Aから実行結果Bを得るための SQL文【午前2 解説】

要点まとめ

  • 結論:実行結果Bは「部署コード」で昇順に並べ替え、同じ部署内は「社員コード」で昇順に並べ替えた結果であるため、ORDER BY句で
    部署コード、社員コード
    を指定する必要があります。
  • 根拠:GROUP BYは集約処理に使い、単純な並べ替えにはORDER BYを用います。実行結果Bは全レコードを保持しつつ並び順を変えているため、GROUP BYは不要です。
  • 差がつくポイント:GROUP BYとORDER BYの違いを理解し、並べ替えのキーを正しく指定できるかが重要です。

正解の理由

選択肢エは
ORDER BY 部署コード、社員コード
を指定しており、実行結果Bの並び順と完全に一致します。部署コードでグループ化しつつ、社員コードで昇順に並べ替えているため、部署ごとに社員コード順に並んだ結果が得られます。
他の選択肢はGROUP BYを使っているか、並べ替えのキーが異なり、実行結果Bと一致しません。

よくある誤解

GROUP BYは並べ替えのために使うと思い込むことがありますが、実際は集約関数と組み合わせてグループ化するための句です。単純な並べ替えはORDER BYを使います。

解法ステップ

  1. 実行結果Bの並び順を確認し、どのカラムでソートされているかを把握する。
  2. 並べ替えにはORDER BY句を使うことを理解する。
  3. GROUP BY句は集約処理用であり、今回の目的には不要と判断する。
  4. SQL文のORDER BY句に
    部署コード、社員コード
    を指定する。
  5. 選択肢の中から該当するSQL文を選ぶ。

選択肢別の誤答解説

  • ア:
    GROUP BY 社員コード
    は社員コードでグループ化するため、集約関数なしではエラーになるか、意図しない結果になる。並べ替えもされない。
  • イ:
    GROUP BY 部署コード
    は部署コードでグループ化し、集約関数なしではエラーか不正確な結果。並べ替えもされない。
  • ウ:
    ORDER BY 社員コード、部署コード
    は社員コード優先で並べ替えるため、実行結果Bの並び順と異なる。
  • エ:
    ORDER BY 部署コード、社員コード
    は実行結果Bの並び順と完全に一致し、正解。

補足コラム

SQLの
GROUP BY
句は、集約関数(SUM, COUNT, AVGなど)と組み合わせてデータをグループ化するために使います。一方、
ORDER BY
句は結果セットの並び順を指定するための句です。混同しやすいですが、目的に応じて使い分けることが重要です。

FAQ

Q: GROUP BY句だけで並べ替えはできますか?
A: いいえ。GROUP BYはグループ化のための句であり、並べ替えはORDER BY句で行います。
Q: ORDER BY句で複数カラムを指定する意味は?
A: 最初のカラムで並べ替え、同じ値の場合は次のカラムで並べ替えを行い、細かい順序を決定します。

関連キーワード: SQL, ORDER BY, GROUP BY, 並べ替え、集約関数、データベース
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について