次の2つのテーブルがあるとします。
製品カテゴリ
PRODUCT_CATEGORY PRIOTITY
BOOK 100
VIDEO 200
CD 300
PRODUCT_TYPES
PRODUCT_TYPE_ID PRODUCTID PRODUCT_CATEGORY
1 1001 VIDEO
2 1001 CD
3 1002 BOOK
4 1002 VIDEO
5 1003 BOOK
2つのテーブルを結合して、PRODUCT_TYPESからすべての行を選択し、重複する製品がある場合は、優先度が最も高いものだけを選択するにはどうすればよいですか。
たとえば、PRODUCTID 1002の場合、VIDEOはBOOK(テーブル内の他の1002製品のカテゴリ)よりも優先度が高いため、VIDEOのカテゴリの行のみが必要です。
これが私が試したことですが、重複しているようです。
select product_type_id, productid, product_category
from product_types pt
join product_categories pc on (pc.product_category=pt.product_category)
これを行うもう1つの方法は、product_categoryで降順で並べ替え、rownum = 1である最初の行を選択することですが、これは最善の解決策ではないと思います。