In response to Andreas :
> Hi,
> 
> I need some magic for a moving statistic that works on a rather big 
> table starting at a given date within the table up until now.
> The statistic will count events allways on fridays over periods of 2 
> weeks before ... biweekly?
> So I'd like to get a line every 2 weeks for everthing between.
> 
> I sadly don't know how to spell that does:
> 
> collect data   where  insert_date  between  friday1   and   friday1 + 
> inteval '2 week'
> collect data   where  insert_date  between  friday1 + inteval '2 week'  
> + inteval '1 second'   and   friday1 + inteval '4 week'
> collect data   where  insert_date  between  friday1 + inteval '4 week'  
> + inteval '1 second'   and   friday1 + inteval '6 week'
> 
> Is this possible ?

I hope i understand you correctly:

test=*# select * from foo;
     d      | value
------------+-------
 2009-10-02 |     1
 2009-10-03 |     2
 2009-10-10 |     3
 2009-10-16 |     4
 2009-10-20 |     5
 2009-10-23 |     6
 2009-10-30 |     7
 2009-11-05 |     8
 2009-11-13 |     9
 2009-11-20 |    10
(10 rows)

test=*# 
select 
  ('2009-10-02'::date + period*('14 days'::interval))::date::text || ' bis ' || 
('2009-10-02'::date + (period+1)*('14 days'::interval))::date::text, 
  sum 
from (
  select 
    ((d-'2009-10-02'::date)/14)  period, 
    sum(value) 
  from foo 
  group by 1
) foo 
order by period;

         ?column?          | sum
---------------------------+-----
 2009-10-02 bis 2009-10-16 |   6
 2009-10-16 bis 2009-10-30 |  15
 2009-10-30 bis 2009-11-13 |  15
 2009-11-13 bis 2009-11-27 |  19
(4 rows)


Or simpler:

test=*# select  ((d-'2009-10-02'::date)/14) || '. period' as period, sum(value) 
from foo group by 1;
  period   | sum
-----------+-----
 0. period |   6
 1. period |  15
 3. period |  19
 2. period |  15
(4 rows)


HTH, Andreas
-- 
Andreas Kretschmer
Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)

-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

Reply via email to