最も高単価な明細商品を仕入先別に特定する

上級
CTE基本

最も高単価な明細商品を仕入先別に特定する

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

ブラウザ上で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構文をマスターする上級問題です。

関連問題


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

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

ログインして解く
QSQL Quest