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

ITパスポート 2013年 春期 61


問題文

関係データベースの“売上”表と“顧客”表を顧客コードで結合し、顧客コードでグループ化して顧客ごとの売上金額の合計を求め、売上金額の合計を降順に整列した。得られた結果の先頭レコードの顧客名はどれか。
ITパスポート 2013年 春期  問61の問題画像

選択肢

井上花子
佐藤太郎(正解)
鈴木三郎
田中梅子

🔒 解説は解答すると表示されます

売上表と顧客表の集計 — 先頭レコードの顧客名は?【ITパスポート 解説】

正解の理由

顧客コードで「売上」表と「顧客」表を結合(JOIN:テーブル同士をつなげる操作)し、顧客コードごとに売上金額を合計(SUM:値を足し合わせる関数)してから、合計を降順(ORDER BY:並べ替える、ここでは降順=大きい順)に整列すると、合計金額が最も大きい顧客が先頭になります。各顧客の合計を計算すると、顧客コードK02の合計が最も大きくなり、その顧客名は (佐藤太郎)です。

解法ステップ

  1. 結合(JOIN)する
    • 「顧客コード」で売上データと顧客名を結び付けます。ここで、顧客コードは「顧客」表の主キー(同一顧客を一意に識別する値)で、「売上」表では外部キー(他表の主キーを参照する値)になっています。
  2. 顧客コードごとにグループ化(GROUP BY:同じ顧客コードでデータをまとめる)して、売上金額を合計(SUM)する
    • 各顧客の売上金額の合計を計算します。
  3. 合計を降順に並べ替え(ORDER BY 合計 DESC)する
    • 合計が大きい順に並べ替えます。
  4. 先頭レコードの顧客名を確認する
    • 並べ替えた結果の一番上が答えです。
具体的な合計計算(単位:万円):
  • K01: 万円
  • K02: 万円
  • K03: 万円
  • K04: 万円
降順に並べると、K02(130)、K03(120)、K04(70)、K01(60)となるので、先頭はK02 → 顧客名「佐藤太郎」= です。

選択肢別の誤答解説

  • ア: 井上花子(K01)
    • K01の合計は万円で、K02の万円より小さいため先頭にはなりません。
  • イ: 佐藤太郎(K02)
    • K02の合計は万円で最も大きいため先頭になります(正解)。
  • ウ: 鈴木三郎(K03)
    • K03の合計は万円で2番目に大きいですが、先頭ではありません。
  • エ: 田中梅子(K04)
    • K04の合計は万円で順位は3位(K01より大きいがK02・K03より小さい)です。

よくある誤解

  1. 「結合しないで売上表だけ見る」
    • 顧客名は「顧客」表にあるため、顧客名を得るには結合が必要です。結合を忘れると顧客名がわかりません。
  2. 「合計を求めず、伝票ごとに並べ替えて先頭を見る」
    • 問題は顧客ごとの合計を求めることが前提です。伝票単位(行単位)で並べ替えると誤答になります。
  3. 「降順(大きい順)と昇順(小さい順)をまちがえる」
    • 問題文に「降順」とあるか確認してください。逆に並べるミスがよくあります。

補足コラム

実際のデータベース操作では、SQL(Structured Query Language:データベースに命令する言語)で次のように書きます。SQLの各キーワードは先に説明した通りです。
SELECT 顧客.顧客名, SUM(売上.売上金額) AS 合計
FROM 売上
JOIN 顧客 ON 売上.顧客コード = 顧客.顧客コード
GROUP BY 顧客.顧客コード, 顧客.顧客名
ORDER BY 合計 DESC;
  • JOIN は内側結合(INNER JOIN)を想定しています。要件によっては LEFT JOIN(売上が無くても顧客全員を表示)を使うことがあります。
  • 問題の単位が「万円」なので、金額の扱いに注意してください(表示や単位換算が必要な場合があります)。

FAQ

Q1. 顧客コードが顧客表にない売上伝票があったらどうなる?
A1. 内側結合(JOIN)では、その伝票は結果に現れません。もし顧客が登録されていない売上も含めたいなら LEFT JOIN(左外部結合)を使います。
Q2. 合計が同じ顧客が複数いる場合の先頭はどう決める?
A2. 同率の場合はDBの実装やSQLでの追加条件(例えば顧客名順など)により決まります。問題文に指定がない場合は同率の扱いを確認する設問が多いです。
Q3. 単位を間違えたらどう影響する?
A3. 単位(ここでは万円)を誤ると順位が変わることは通常ありませんが、金額を別の単位で表示する際は必ず変換を行ってください。

関連キーワード: SQL、JOIN、GROUP BY、ORDER BY、SUM、顧客コード、売上集計、主キー、外部キー、万円
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

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