最も高単価な明細商品を仕入先別に特定する
上級
CTE基本
最も高単価な明細商品を仕入先別に特定する
ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。
問題文
CTEを使い、仕入先ごとに最も高いunit_priceの明細商品名と単価を取得してください。
結合のヒント
- purchase_ordersテーブル(エイリアス: po)との結合条件: pi.purchase_order_id = po.id(purchase_items.purchase_order_id = purchase_orders.id)
- vendorsテーブル(エイリアス: v)との結合条件: po.vendor_id = v.id) SELECT vendor_name, product_name, unit_price FROM ranked(purchase_orders.vendor_id = vendors.id) SELECT vendor_name, product_name, unit_price FROM ranked)
取得列: v.name AS vendor_name, pi.product_name, pi.unit_price, RANK() OVER (PARTITION BY po.vendor_id ORDER BY pi.unit_price DESC) AS rn
この問題で学べること
- CTE基本 の構文・考え方
- 上級レベルのSQLクエリの書き方
- ブラウザ上でSQLを実行して即座に結果を確認する練習
使用テーブル
vendorspurchase_orderspurchase_items難易度・対象者
難易度上級
カテゴリCTE基本
対象者ウィンドウ関数やサブクエリなど、複雑なSQL構文をマスターする上級問題です。