問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
注文履歴が ordered テーブルに、注文内容が ordered_menu テーブルに保存されています。
テーブルの形式は次の通りです。
ordered
| # | カラム名 | データ型 | 内容 |
|---|---|---|---|
| 1 | ordered_id | 整数 (int) | 注文の通し番号 |
| 2 | datetime | 日時 (datetime) | 注文がおこなわれた日時 |
| 3 | bill | 整数 (int) | 注文の合計金額 |
| # | カラム名 | データ型 | 内容 |
|---|---|---|---|
| 1 | ordered_id | 整数 (int) | 注文の通し番号 |
| 2 | menu_id | 整数 (int) | メニュー番号 |
| 3 | num | 整数 (int) | メニューの注文数 |
| 4 | sum | 整数 (int) | 小計 |
8、13、21の3つです。各時間帯ごとに通し番号が最も大きい注文が当選します。時間帯を行に、対象メニューを列に持つクロス集計表の形で各時間帯・各メニューの当選した注文番号を出力してください。DATE_FORMAT(datetime,"%k時台") AS 時間帯を利用してください。-1を出力してください。CASE WHEN 条件 THEN 値 END:条件に応じてカラムの値を変えることができるELSE 値と続けることで、それまでの条件に合わなかった場合の値を設定できる