Re: Abfrage mit Datum als Serie.
Andreas Kretschmer <[email protected]> Wed, 12 Mar 2014 20:32:57 +0100
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <20140312193257.GA26128@tux> |
Thomas Drebert <[email protected]> wrote: > Vielleicht kann mir jemand helfen, wie ich das verbinden kann. Einfaches Besipiel, Du hast: ,---- | test=*# select * from messung order by 1; | d | val | ------------+----- | 2014-03-12 | 9 | 2014-03-13 | 5 | 2014-03-15 | 7 | 2014-03-16 | 2 | 2014-03-17 | 7 | 2014-03-17 | 5 | 2014-03-17 | 10 | 2014-03-17 | 6 | 2014-03-19 | 5 | 2014-03-21 | 6 | (10 rows) `---- Auf die einzelnen Tage via generate_series(): ,---- | test=*# select foo.d, messung.val from (select (current_date + s * '1day'::interval)::date as d from generate_Series(1,10)s) foo left join messung using(d) order by 1; | d | val | ------------+----- | 2014-03-13 | 5 | 2014-03-14 | | 2014-03-15 | 7 | 2014-03-16 | 2 | 2014-03-17 | 7 | 2014-03-17 | 5 | 2014-03-17 | 10 | 2014-03-17 | 6 | 2014-03-18 | | 2014-03-19 | 5 | 2014-03-20 | | 2014-03-21 | 6 | 2014-03-22 | | (13 rows) `---- Und nun aggregieren, z.B. avg(): ,---- | test=*# select foo.d, avg(messung.val) from (select (current_date + s * '1day'::interval)::date as d from generate_Series(1,10)s) foo left join messung using(d) group by 1 order by 1; | d | avg | ------------+-------------------- | 2014-03-13 | 5.0000000000000000 | 2014-03-14 | | 2014-03-15 | 7.0000000000000000 | 2014-03-16 | 2.0000000000000000 | 2014-03-17 | 7.0000000000000000 | 2014-03-18 | | 2014-03-19 | 5.0000000000000000 | 2014-03-20 | | 2014-03-21 | 6.0000000000000000 | 2014-03-22 | | (10 rows) `---- Du baust Dir halt via : ,---- | test=*# select (current_date + s * '1day'::interval)::date as d from generate_Series(1,10)s; | d | ------------ | 2014-03-13 | 2014-03-14 | 2014-03-15 | 2014-03-16 | 2014-03-17 | 2014-03-18 | 2014-03-19 | 2014-03-20 | 2014-03-21 | 2014-03-22 | (10 rows) `---- eine Hilfstabelle, die ALLE Tagen enthält, und nutzt das als Basis für die weitere Arbeit. Mit generate_series() warst Du ja schon auf dem richtigen Weg ;-) Viel Erfolg noch! 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° -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein