Re: Delete Question

Поиск
Список
Период
Сортировка
От A. Kretschmer
Тема Re: Delete Question
Дата
Msg-id 20051207074702.GC13724@webserv.wug-glas.de
обсуждение исходный текст
Ответ на Delete Question  (Alex <alex@meerkatsoft.com>)
Ответы MySQL dump  (go KEY802207 <go@ugnn.ru>)
Список pgsql-general
am  07.12.2005, um 18:21:25 +1100 mailte Alex folgendes:
> Hi,
>
> I have a table where I store changes made to an order. The looks like
> ProdID, ChangeDate, Change1, Change2, ... etc.
> Some ProdIDs have multiple records.
>
> Is there an easy way to delete all records of a ProdID except the most
> recent (ChangeDate is timestamp) one? Preferably in one SQL statement?

test=# select * from change ;
 id |           datum            |   text
----+----------------------------+----------
  1 | 2005-12-07 08:28:28.939312 | foo
  1 | 2005-12-07 08:28:34.695091 | foo2
  1 | 2005-12-07 08:28:37.150354 | foo3
  1 | 2005-12-07 08:28:43.263171 | foo_last
  2 | 2005-12-07 08:28:48.419252 | foo
  2 | 2005-12-07 08:28:55.819969 | foo_last
(6 rows)

test=# begin;
BEGIN
test=# delete from change where id || ':' || datum not in (select id || ':' || max(datum) from change group by id order
by1); 
DELETE 4
test=# select * from change ;
 id |           datum            |   text
----+----------------------------+----------
  1 | 2005-12-07 08:28:43.263171 | foo_last
  2 | 2005-12-07 08:28:55.819969 | foo_last
(2 rows)


But i'm not sure if this works correctly for you.



HTH, Andreas
--
Andreas Kretschmer    (Kontakt: siehe Header)
Heynitz:  035242/47212,      D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
 ===    Schollglas Unternehmensgruppe    ===

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

Предыдущее
От: hubert depesz lubaczewski
Дата:
Сообщение: tables with lots of columns - what alternative from performance point of view?
Следующее
От: Alex
Дата:
Сообщение: Re: Delete Question