- ベストアンサー
同一データの抽出方法について
- T1のレコードで同一の値を持つレコードを抽出する方法について教えてください。
- T2とT3の各サブテーブルの値の集合が一致するものを基準に、T1から同一の値を持つレコードを抽出します。
- Oracle 10を使用しており、PL/SQLでも構いません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
T3.VALUEが、vv11になっているのが、理解できないんですが.. 文面からするとこんな感じなのかな.. select * from t1 where key in (select key from t1 minus select key from (select key from (select * from t2 minus select * from t3) union select key from (select * from t3 minus select * from t2))) とか select t1.* from t1, (select t2.*,row_number() over(partition by key order by value) R from t2) t2 (select t3.*,row_number() over(partition by key order by value) R from t3) t3 where t1.key=t2.key and t1.key=t3.key and t2.value=t3.value and t2.R=t3.R どちらも同じ結果になるかと思います。
その他の回答 (1)
- utakataXEX
- ベストアンサー率69% (711/1018)
手許に8iしかないのでANSI JOINは使っていませんが、 こんな感じでできると思います。 select * from T1 where key in ( select T2.key from (select key,count(*) as cnt from T2 group by key) T2 ,(select key,count(*) as cnt from T3 group by key) T3 where T2.key = T3.key and T2.cnt = T3.cnt );