"compressing" consecutive values into one

From: Louis-David Mitterrand <vindex+lists-pgsql-sql(at)apartia(dot)org>
To: pgsql-sql(at)postgresql(dot)org
Subject: "compressing" consecutive values into one
Date: 2010-11-23 15:19:19
Message-ID: 20101123151918.GA22094@apartia.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

On time series price data I'm trying to remove consecutive identical
prices and keep only the latest. I tried:

delete from price where id_price in (select t.id_price2 from (select
first_value(p.id_price) over w as id_price1,
nth_value(p.id_price, 2) over w as id_price2,
first_value(p.price) over w as price1,
nth_value(p.price,2) over w as price2
from price p
window w as (partition by p.id_rate,p.id_cabin_category,p.id_cruise
order by p.id_price desc rows between unbounded preceding and
unbounded following)) as t where price1 = price2);

and it mostly works but I have to do several runs to completely
eliminate identical consecutive prices.

Is there a better, one-pass, way?

Thanks,

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Oliveiros d'Azevedo Cristina 2010-11-23 15:31:59 Re: "compressing" consecutive values into one
Previous Message tv 2010-11-23 04:11:37 Re: Howto "insert or update" ?