本文へスキップ

平成25年度 春期 ITパスポート試験 問61

この問題の解説と、これまでの解答の記録です。

問61
頻出度★★☆

関係データベースの“売上”表と“顧客”表を顧客コードで結合し,顧客コードでグループ化して顧客ごとの売上金額の合計を求め,売上金額の合計を降順に整列した。得られた結果の先頭レコードの顧客名はどれか。 売上

伝票番号顧客コード売上金額(万円)
H001K0140
H002K0280
H003K03120
H004K0470
H005K0120
H006K0250

顧客

顧客コード顧客名
K01井上花子
K02佐藤太郎
K03鈴木三郎
K04田中梅子
出典 平成25年度 春期 ITパスポート試験 問61
解説

問 61

  • 不正解ア

    井上花子(K01)の合計は 40+20=60 万円で、4 人の中で最も少なく、降順では最後尾(4 番目)になります。伝票が 2 件あるので件数は多いものの、金額の合計では最下位です。

  • イ

    正解 手順どおりに計算します。まず「売上」表と「顧客」表を顧客コードで結合し、顧客コードでグループ化して売上金額を合計します。K01(井上花子)は 40+20=60 万円、K02(佐藤太郎)は 80+50=130 万円、K03(鈴木三郎)は 120 万円、K04(田中梅子)は 70 万円です。これを売上金額の合計で降順(大きい順)に整列すると、130 → 120 → 70 → 60 の順、つまり 佐藤太郎 → 鈴木三郎 → 田中梅子 → 井上花子 となります。したがって先頭レコードの顧客名は 佐藤太郎 で、正解は「イ」です。ポイントは、1 件あたりの最高額ではなく「顧客ごとの合計額」で比べることです。

  • 不正解ウ

    鈴木三郎(K03)の 120 万円は 1 件あたりの金額としては最大ですが、合計では 130 万円の佐藤太郎に届かず 2 番目です。「単一伝票の最高額」と「顧客ごとの合計額」を取り違えさせるのが、この問題の典型的なひっかけです。

  • 不正解エ

    田中梅子(K04)の売上は H004 の 70 万円 1 件だけで、合計 70 万円は 3 番目です。降順の先頭にはなりません。

ここがポイント
  • 結合(join)+グループ化(GROUP BY)+集計(SUM)+整列(ORDER BY 降順)という一連の処理の意味を理解する。結合キー(ここでは顧客コード)で 2 表を対応づけ、グループごとに合計を出してから並べ替える、という順序が要点。
  • 降順に整列した結果の「先頭レコード」=集計値が最大の行。個々の明細(伝票)の最大値ではなく、グループ集計後の合計値どうしを比較することに注意する。
用語

解答の記録