私は次のデータを持っています
Order_ID Pallet_ID
O1 P1
O2 P1
O2 P2
O3 P2
O3 P3
O4 P4
注文が複数のパレットにある場合や、1 つのパレットに複数の注文がある場合。グループを構成する注文のグループを選択する必要があります。それらはすべて同じグループのパレットを共有しています。上記のテスト データでは、{O1,O2,O3} および {O4} という 2 つのグループが存在します。これは、O1、O2、および O3 がグループの別のメンバーと共通のパレットを少なくとも 1 つ持っているためです。
これを行うには、いくつかのSQLが必要です。試してみました(greg_testには上記のデータが含まれています)
select distinct order_id
from greg_test
start with order_id = :order_id
connect by pallet_id = prior pallet_id
しかし、循環参照エラー (ORA-01436 CONNECT BY loop in user data) が発生しました。nocycle を追加しても、正しいセットが得られませんでした。