問題 #106上級CTE基本
カテゴリ別の売上トップ3を求める
productsとordersテーブルを使い、カテゴリごとに売上金額上位3件の注文IDと金額をCTEを用いて取得してください。 使用テーブルと主な列: - ordersテーブル: 注文ID(id)、ユーザーID(user_id)、商品ID(product_id)、数量(quantity)、注文日(order_date) - productsテーブル: 商品ID(id)、商品名(name)、価格(price)、カテゴリ(category) 結合のヒント: - productsテーブル(エイリアス: p)との結合条件: o.product_id = p.id ) SELECT id, category, amount FROM order_amounts(orders.product_id = products.id ) SELECT id, category, amount FROM order_amounts) 取得列: o.id, p.category, p.price * o.quantity AS amount, ROW_NUMBER() OVER (PARTITION BY p.category ORDER BY p.price * o.quantity DESC) AS rn
この問題で学べること
- CTE基本 の構文・考え方
- 上級レベルの SQL クエリの書き方
- ブラウザ上で SQL を実行して即座に結果を確認する練習
使用テーブル
ordersproducts難易度・対象者
- 難易度
- 上級
- カテゴリ
- CTE基本
- 対象者
- ウィンドウ関数や CTE など応用構文を学びたい方、複雑な集計に挑戦したい方