1. paizaラーニングトップ
  2. レベルアップ問題集
  3. 新・SQL入門編05ドリル(言語選択)
  4. 問題一覧 MySQL編
  5. カテゴリごとの売上を求めよう MySQL編

新・SQL入門編05ドリルのサムネイル
カテゴリごとの売上を求めよう MySQL編(paizaランク C 相当)

問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!

問題

下記の問題をプログラミングしてみよう!

※ この問題集は、動画講座『新・SQL入門編5: GROUP BY 句を理解しよう』で学習した内容について反復して練習できるドリルです。分からないことがあれば、動画に戻って復習してみてください。

メニューがmenu テーブルに、文内容がordered_menu テーブルに保存されています。
テーブルの形式は次の通りです。

menu

#カラム名データ型内容
1menu_id整数 (int)メニュー番号
2category_id整数 (int)カテゴリ番号
3name文字列 (varchar)メニュー名
4price整数 (int)価格


ordered_menu

#カラム名データ型内容
1ordered_id整数 (int)注文の通し番号
2menu_id整数 (int)メニュー番号
3num整数 (int)メニューの注文数
4sum整数 (int)小計


メニューのカテゴリごとに全注文の合計金額を求めてください。

回答形式



#category_idSUM(sum)
1id_1?
2id_2?
3id_3?
4id_4?


なお、category_idとSUM(sum)の組み合わせが合っていれば順番は問いません。

ヒント


・ menuテーブルとorderedテーブルを結合する必要がある
SELECT * FROM テーブル名1 INNER JOIN テーブル名2 ON テーブル名1のカラム名 = テーブル名2のカラム名; で、テーブル名1テーブル名2を、テーブル名1カラム名テーブル名2カラム名で内部結合する
SELECT カラム名1, SUM(カラム名2) FROM テーブル名 GROUP BY カラム名1: カラム名1のグループごとにカラム名2 カラムの合計を取得できる

入力例1
menu テーブル
menu_idcategory_idnameprice
11ハンバーガー200
21チーズバーガー250
31チキンバーガー300
............
ordered_menu テーブル
ordered_idmenu_idnumsum
1141200
2211250
381350
............
出力例1
category_id SUM(sum)
2 87250
4 114400
1 157230
...

問題一覧へ戻る

ページの先頭へ戻る