• ベストアンサー

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 どうしたらよいでしょうか? よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • gdcootie
  • ベストアンサー率42% (3/7)
回答No.2

フィールド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

hido1919
質問者

お礼

ご返答ありがとうございました。 なんとか理解できました。 また、お願いします。

その他の回答 (2)

回答No.3

対象となる表を絞り込む条件の話なので、 select * from 表 where (フィールド1,フィールド2) in (select フィールド1,フィールド2 from 表 group by フィールド1,フィールド2 having count(*)>1) とかが判りやすいかと思います。

hido1919
質問者

お礼

ご返答ありがとうございました。 この方法でも出来るのですね。 またご指導下さい。

  • gdcootie
  • ベストアンサー率42% (3/7)
回答No.1

select フィールド1,フィールド2 ,フィールド3 from ( select フィールド1,フィールド2,count(*) from table_name group by フィールド1,フィールド2 having count(*)>=2) とかどうでしょう

関連するQ&A