ITパスポート試験 ITパスポート 2013年 (平成25年 春期)61: 関係データベースの"売上"表と"顧客"表を顧客コードで結合し,顧客コードでグループ化して顧客ごとの売上金額の合計を求め,売上金額の合計を降順に整列した。得られた

ITパスポート 2013年 (平成25年 春期)
Q 6161 / 100
関係データベースの"売上"表と"顧客"表を顧客コードで結合し,顧客コードでグループ化して顧客ごとの売上金額の合計を求め,売上金額の合計を降順に整列した。得られた結果の先頭レコードの顧客名はどれか。 売上
伝票番号顧客コード売上金額(万円)
H001K0140
H002K0280
H003K03120
H004K0470
H005K0120
H006K0250
顧客
顧客コード顧客名
K01井上花子
K02佐藤太郎
K03鈴木三郎
K04田中梅子
この問の正解率:49.51%(1,020件)
この問題の本文・選択肢・正解・解説(展開)

問題本文

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

選択肢

  • .井上花子
  • .佐藤太郎
  • .鈴木三郎
  • .田中梅子

正解

. 佐藤太郎

解説

売上表と顧客表を顧客コードで結合すると,各売上明細に顧客名が紐付く.顧客ごとの売上合計をグループ集計するとK01(井上花子)=40+20=60,K02(佐藤太郎)=80+50=130,K03(鈴木三郎)=120,K04(田中梅子)=70.売上金額合計の降順に整列するとK02 130→K03 120→K04 70→K01 60の順となり,先頭レコードはK02の佐藤太郎.以上から正解はイ.SQL文ではSELECT 顧客名,SUM(売上金額) FROM 売上 JOIN 顧客 USING(顧客コード) GROUP BY 顧客コード ORDER BY SUM(売上金額) DESCに相当する処理で,結合・集計・整列の基本操作を組み合わせた典型問題.

選択肢ごとの解説

  • .井上花子(K01)の売上合計は40+20=60万円で4人中最小.結合・グループ化・降順整列を経て先頭に来るレコードとしては不適切で,降順では最後尾となる.「降順」は売上金額合計の大→小の順で整列するため,K01が先頭になることはなく本選択肢は誤り.
  • .正解.佐藤太郎(K02)の売上合計は80+50=130万円で4人中最大.顧客コード結合+グループ化+売上金額合計降順整列の結果,K02の130万円が先頭に来る.設問の処理を正しく追跡すれば最初に現れるレコードの顧客名は佐藤太郎となり,本選択肢が適切な解答である.
  • .鈴木三郎(K03)の売上合計は120万円で4人中2位.顧客コード結合・グループ化・降順整列を経るとK02(130万円)に次ぐ2番目に位置し先頭ではないため,本問の先頭レコードの顧客名としては誤り.売上順位を取り違えると誤答に至る典型的なパターンであり,合計値の大小を慎重に比較する必要がある.
  • .田中梅子(K04)の売上合計は70万円で4人中3位.顧客コード結合・グループ化・降順整列を経るとK02(130)→K03(120)→K04(70)→K01(60)の順となり3番目に位置するため先頭ではない.先頭レコードはK02の佐藤太郎であり,K04を先頭とするのは整列結果と矛盾するため本選択肢は誤り.

ITパスポート 2013年 (平成25年 春期)過去問一覧へ戻る・問61