[pgsql-jp: 29395] Re: 重複レコードの削除

Tatsuo Ishii t-ishii @ sra.co.jp
2003年 3月 12日 (水) 22:38:41 JST


石井です.

> 小松です。SQLな話題を一項。

いいですね.
# なごみますね:-)

> 重複なしでアイテムを取り出すというのはよくある話で、
> select distinct name from items ;
> となりますが、逆に重複したアイテムだけのリストを
> 取り出すにはどうするのがいいんでしょうか?(問1)

まあ,いろいろあると思うので,これはほかのかたにおまかせして...

> さらには、これらの重複レコードを削除(1件のみ残して削除)する
> ことを考えてみると、aggregationが使えなくなるので、これまた
> どうしたものかと悩んでしまっています。(問2)
> どなたかスマートな方法教えてください。

同案多数でしょうが,こんなんで如何でしょう.

delete from items where itemno in (
select itemno from items except
select min(itemno) from items
group by name
);

なお,itemnoはユニークであるという前提です.
--
Tatsuo Ishii



pgsql-jp メーリングリストの案内