カテゴリごとの売上を求めよう MySQL編(paizaランク C 相当)
問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
問題
下記の問題をプログラミングしてみよう!
※ この問題集は、動画講座『新・SQL入門編5: GROUP BY 句を理解しよう』で学習した内容について反復して練習できるドリルです。分からないことがあれば、動画に戻って復習してみてください。
メニューがmenu テーブルに、文内容がordered_menu テーブルに保存されています。
テーブルの形式は次の通りです。
menu
# | カラム名 | データ型 | 内容 |
---|
1 | menu_id | 整数 (int) | メニュー番号 |
2 | category_id | 整数 (int) | カテゴリ番号 |
3 | name | 文字列 (varchar) | メニュー名 |
4 | price | 整数 (int) | 価格 |
ordered_menu
# | カラム名 | データ型 | 内容 |
---|
1 | ordered_id | 整数 (int) | 注文の通し番号 |
2 | menu_id | 整数 (int) | メニュー番号 |
3 | num | 整数 (int) | メニューの注文数 |
4 | sum | 整数 (int) | 小計 |
メニューのカテゴリごとに全注文の合計金額を求めてください。
回答形式
# | category_id | SUM(sum) |
---|
1 | id_1 | ? |
2 | id_2 | ? |
3 | id_3 | ? |
4 | id_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
-
category_id SUM(sum)
2 87250
4 114400
1 157230
...
問題一覧へ戻る