0

別のデータセットにないあるデータセットのレコードを表示したいと思います。

より大きなデータセットのコードは次のとおりです。

select distinct facil_identifier, facil_addr_line1,
trim(facil_city) as facil_city, facil_zip
from xx.tb1 f
where facil_identifier is not null

小さいデータセットにない最初の(大きい)データセットのレコードを見つけたいと思います。

小さいデータセットのコードは次のとおりです。

select distinct facil_identifier, facil_addr_line1,
facil_zip
from xx.tb1 f
where facil_identifier is not null

これは私の試みです:

select distinct facil_identifier, facil_addr_line1,
facil_zip
from xx.tb1 f
where facil_identifier is not null
and facil_identifier not in
(select facil_identifier
from 
    (select distinct facil_identifier, facil_addr_line1,
    trim(facil_city) as facil_city, facil_zip
    from xx.tb1 f2
    where facil_identifier is not null) as city
where city.facil_identifier = f.facil_identifier)
order by facil_addr_line1

このコードには莫大なコストがかかります。各セットのレコード数は 3000 未満です。

4

1 に答える 1

0

私はpostgres SQLの専門家ではありませんが、これでうまくいくはずです(または少なくとも近づくことができます)

select distinct f2.facil_identifier, f2.facil_addr_line1,
trim(f2.facil_city) as facil_city, f2.facil_zip
from import.facil_xx_20131016 f2
left join import.facil_xx_20131016 f on f2.facil_identifier = f.facil_identifier
where f2.facil_identifier is not null
and f.facil_identifier is null
于 2013-10-18T21:03:28.090 に答える