| 伝票番号 | 顧客コード | 売上金額(万円) |
|---|---|---|
| H001 | K01 | 40 |
| H002 | K02 | 80 |
| H003 | K03 | 120 |
| H004 | K04 | 70 |
| H005 | K01 | 20 |
| H006 | K02 | 50 |
| 顧客コード | 顧客名 |
|---|---|
| K01 | 井上花子 |
| K02 | 佐藤太郎 |
| K03 | 鈴木三郎 |
| K04 | 田中梅子 |
関係データベースの"売上"表と"顧客"表を顧客コードで結合し,顧客コードでグループ化して顧客ごとの売上金額の合計を求め,売上金額の合計を降順に整列した。得られた結果の先頭レコードの顧客名はどれか。 売上 顧客
イ. 佐藤太郎
売上表と顧客表を顧客コードで結合すると,各売上明細に顧客名が紐付く.顧客ごとの売上合計をグループ集計すると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に相当する処理で,結合・集計・整列の基本操作を組み合わせた典型問題.
ITパスポート 2013年 (平成25年 春期) の過去問一覧へ戻る・問61