重複した行と、重複していない行をわけて出力したい。
お世話になります。Oracle9iで、
タイトル通りですが、一つの表から
重複したレコード・重複していないレコード
を出力したいのですが、「こうかな?」と思った
SELECT文が30分ちかく返ってきません(^^;
他に方法があれば教えて頂きたく質問致しました。
よろしくご教授下さい!
(以下のSQLで、重複した行は"exists"で、
重複していない行は"not exists"もしくは
"having count(*) = 1"でできるかな?
と思ってましたが・・・)
テーブル名:結果
キー項目(とみなすカラム):番号・名称・年月日
出力したい項目:結果.データ・もしくは結果.*
--データが複数
select a.番号,a.名称,a.年月日,a.データ
from 結果 a
where exists
--キーの重複SELECT
(
select 番号,名称,年月日,count(*)
from 結果 j
where j.年月日 >= '1992/04/01'
and j.年月日 <= '1993/03/31'
and a.番号= j.番号
and a.名称= j.名称
and a.年月日 = j.年月日
group by j.番号,j.名称,j.年月日
having count(*) > 1
)
お礼
ありがとうございます。 できました、こんなに簡単にできるとは思わなかったです。