ポテト王 MySQL編(paizaランク C 相当)
問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
問題
下記の問題をプログラミングしてみよう!
※ この問題集は、動画講座『新・SQL入門編5: GROUP BY 句を理解しよう』で学習した内容について反復して練習できるドリルです。分からないことがあれば、動画に戻って復習してみてください。
注文内容がordered_menu テーブルに保存されています。
ordered_menu テーブルの形式は次の通りです。
# | カラム名 | データ型 | 内容 |
---|
1 | ordered_id | 整数 (int) | 注文の通し番号 |
2 | menu_id | 整数 (int) | メニュー番号 |
3 | num | 整数 (int) | メニューの注文数 |
4 | sum | 整数 (int) | 小計 |
各サイズのポテトに対し、最も多かった注文数を取得してください。 なお、フライドポテトのmenu_idは次の通りです。
# | menu_id | name |
---|
1 | 10 | フライドポテトS |
2 | 11 | フライドポテトM |
3 | 12 | フライドポテトL |
回答形式
次のように表示してください。
# | menu_id | MAX(num) |
---|
1 | id_1 | ? |
2 | id_2 | ? |
3 | id_3 | ? |
なお、menu_idとMAX(num)の組み合わせが合っていれば順番は問いません。
ヒント
・
SELECT カラム名1, MAX(カラム名2) FROM テーブル名 GROUP BY カラム名1
:
カラム名1
ごとに
カラム名2
カラムの最大値を取得できる
・
WHERE カラム名 BETWEEN 値1 AND 値2
:
カラム名
カラムの値が
値1
と
値2
の間に含まれるレコードを絞り込むことができる
- 出力例1
-
menu_id MAX(num)
12 2
10 4
11 2
問題一覧へ戻る