Re: Removing duplicate entries

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: Removing duplicate entries
Дата
Msg-id 20060111201804.GA87587@winnie.fuhr.org
обсуждение исходный текст
Ответ на Removing duplicate entries  ("Scott Ford" <Scott.Ford@bullfrogpower.com>)
Список pgsql-novice
On Wed, Jan 11, 2006 at 02:06:53PM -0500, Scott Ford wrote:
> customers
>     customer_id
>     ...
>
> documents
>     customer_id
>     document_id
>     document_type_id
>     ...
>
> So, for example, there are two documents with the same document_type_id
> associated with one customer.
>
> Can someone help me with a SQL statement that might help me remove the
> duplicate documents for a certain document_type_id?

Is document_id a primary key (or otherwise unique)?  If so then
something like this might work:

DELETE FROM documents WHERE document_id NOT IN (
  SELECT min(document_id)
  FROM documents
  GROUP BY customer_id, document_type_id
);

Be sure to understand what this query does before running it; I
might be making assumptions about your data that aren't correct.
I'd advise trying this or any other suggestion against test data
before using it on data you don't want to lose, and I'd also recommend
using a transaction that you can roll back if necessary (i.e., start
a transaction, run the delete, run some queries to make sure the
changes are correct, then either commit or roll back the transaction).

--
Michael Fuhr

В списке pgsql-novice по дате отправления:

Предыдущее
От: Jaime Casanova
Дата:
Сообщение: Re: Removing duplicate entries
Следующее
От: "Sugrue, Sean"
Дата:
Сообщение: Comparing databases