レストラン別売上ランキングをCTEで作成

上級
CTE基本

レストラン別売上ランキングをCTEで作成

ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。

ブラウザ上でSQLを書いて解いてみましょう

ログインして挑戦できます

ログインして解く

問題文

CTEでレストランごとの注文合計を集計し、restaurantsとLEFT JOINしてRANK()で売上ランキングを付けてください。

結合のヒント

  • table_reservationsテーブル(エイリアス: tr)との結合条件: fo.reservation_id = tr.id(food_orders.reservation_id = table_reservations.id)
  • menu_itemsテーブル(エイリアス: mi)との結合条件: fo.menu_item_id = mi.id(food_orders.menu_item_id = menu_items.id)
  • restaurant_revenueテーブル(エイリアス: rr)との結合条件: r.id = rr.restaurant_id(r.id = restaurant_revenue.restaurant_id)

取得列: tr.restaurant_id, SUM(mi.price * fo.quantity) AS total_revenue

この問題で学べること

  • CTE基本 の構文・考え方
  • 上級レベルのSQLクエリの書き方
  • ブラウザ上でSQLを実行して即座に結果を確認する練習

使用テーブル

restaurantsfood_orderstable_reservationsmenu_items

難易度・対象者

難易度上級
カテゴリCTE基本
対象者ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。

関連問題


実際にSQLを書いて理解を深めましょう

ブラウザ上で実行できる採点付きSQLエディタで練習できます

ログインして解く
QSQL Quest