Received: from maia.hub.org (unknown [200.46.204.183]) by mail.postgresql.org (Postfix) with ESMTP id 17D5363417D for ; Wed, 24 Mar 2010 13:30:15 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 93104-03-6 for ; Wed, 24 Mar 2010 16:30:04 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from vs137086.vserver.de (static-ip-62-75-137-86.inaddr.intergenia.de [62.75.137.86]) by mail.postgresql.org (Postfix) with ESMTP id E9045634D3E for ; Wed, 24 Mar 2010 13:29:49 -0300 (ADT) Received: (qmail 25662 invoked from network); 24 Mar 2010 17:29:47 +0100 Received: from p54b39111.dip0.t-ipconnect.de (HELO a-kretschmer.de) (84.179.145.17) by static-ip-62-75-137-86.inaddr.intergenia.de with (AES256-SHA encrypted) SMTP; 24 Mar 2010 17:29:47 +0100 Received: from kretschmer by a-kretschmer.de with local (Exim 4.69) (envelope-from ) id 1NuTSk-0001co-6R for pgsql-sql@postgresql.org; Wed, 24 Mar 2010 17:29:46 +0100 Date: Wed, 24 Mar 2010 17:29:46 +0100 From: Andreas Kretschmer To: pgsql-sql@postgresql.org Subject: Re: window function to sort times series data? Message-ID: <20100324162946.GA5845@tux> References: <20100324140832.GA5864@apartia.fr> <20100324142936.GB15442@a-kretschmer.de> <20100324143639.GA7853@apartia.fr> <20100324150441.GC15442@a-kretschmer.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20100324150441.GC15442@a-kretschmer.de> X-OS: Debian/GNU Linux - weil ich es mir Wert bin! X-GPG-Fingerprint: EE16 3C01 7B9C 10F7 2C8B 3B86 4DB3 D9EE 7F45 84DA X-Message-Flag: "Windows" is not the answer. "Windows" is the question and the answer is "no"! X-Lugdd: Gerd Kube X-Info: My name is root. Just root. And I am licensed to kill -9 User-Agent: Mutt/1.5.18 (2008-05-17) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0.001 tagged_above=-10 required=5 tests=BAYES_50=0.001 X-Spam-Level: X-Archive-Number: 201003/175 X-Sequence-Number: 33882 A. Kretschmer wrote: Well, and now i'm using 8.4 windowing-functions: test=*# select * from price order by price_id, d; price_id | price | d ----------+-------+------------ 1 | 10 | 2010-03-12 1 | 11 | 2010-03-19 1 | 12 | 2010-03-26 1 | 13 | 2010-04-02 1 | 14 | 2010-04-09 1 | 15 | 2010-04-16 1 | 16 | 2010-04-23 1 | 17 | 2010-04-30 2 | 20 | 2010-03-12 2 | 21 | 2010-03-19 2 | 22 | 2010-03-26 2 | 23 | 2010-04-02 (12 Zeilen) -- now i'm searching for 2010-03-20: Zeit: 0,319 ms test=*# select price_id, sum(case when d < '2010-03-20'::date then price else 0 end) as price_old, sum(case when d > '2010-03-20'::date then price else 0 end) as price_new, max(case when d < '2010-03-20'::date then d else null end) as date_old, max(case when d > '2010-03-20'::date then d else null end) as date_new from (select price_id, price, d, lag(d) over(partition by price_id order by d), lead(d) over(partition by price_id order by d) from price) foo where '2010-03-20'::date between lag and lead group by price_id; price_id | price_old | price_new | date_old | date_new ----------+-----------+-----------+------------+------------ 1 | 11 | 12 | 2010-03-19 | 2010-03-26 2 | 21 | 22 | 2010-03-19 | 2010-03-26 (2 Zeilen) Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknown) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°