- ベストアンサー
Oracle SQLでのデータ抽出
Oracle、SQLともに初心者のため困っています。 どなたか教えてください。 フィールド1、2で重複(2件以上存在)するレコードに対して、そのテーブルの全項目を取得したいのです。 例: 処理前 フィールド1,フィールド2 ,フィールド3 1 , AA, 1 1 , AA, 2 1 , BB, 3 1 , BB, 4 2 , CC, 5 2 , CC, 6 3 , DD, 7 4 , EE, 8 5 , FF, 9 処理後 フィールド1, フィールド2,フィールド3 1 , AA, 1 1 , AA, 2 1 , BB, 3 1 , BB, 4 2 , CC, 5 2 , CC, 6 どうしたらよいでしょうか? よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
フィールド3わすれてました select フィールド1,フィールド2 ,フィールド3 from table_name a, ( select フィールド1,フィールド2,count(*) from table_name group by フィールド1,フィールド2 having count(*)>=2) b where a.フィールド1=b.フィールド1 and a.フィールド2=b.フィールド2
その他の回答 (2)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
対象となる表を絞り込む条件の話なので、 select * from 表 where (フィールド1,フィールド2) in (select フィールド1,フィールド2 from 表 group by フィールド1,フィールド2 having count(*)>1) とかが判りやすいかと思います。
お礼
ご返答ありがとうございました。 この方法でも出来るのですね。 またご指導下さい。
- gdcootie
- ベストアンサー率42% (3/7)
select フィールド1,フィールド2 ,フィールド3 from ( select フィールド1,フィールド2,count(*) from table_name group by フィールド1,フィールド2 having count(*)>=2) とかどうでしょう
お礼
ご返答ありがとうございました。 なんとか理解できました。 また、お願いします。