| 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: | Whole Thread | Raw Message | 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,
| 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" ? |