Re: Abfrage mit Datum als Serie.

From: Thomas Drebert <drebert(at)web(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Abfrage mit Datum als Serie.
Date: 2014-03-13 05:04:14
Message-ID: CANn+32iPN5Qhyne0UkA2LO9PiyFM0bXdSvU3emAH2pM4BE+evA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo,

leider habe ich wieder das Problem die Daten zusammen zu führen.
select * from variablen order by 1

funktioniert
Die Tabelle
select (current_date + s * '1day'::interval)::date as d from
generate_Series(1,10)s

Funktioniert auch.

aber bei
select foo.d, variablen.value from (select (current_date + s *
'1day'::interval)::date as d from generate_Series(1,10)s) foo left join
variablen using(d) order by 1

bekomme ich die Fehlermeldung:
ERROR: column "d" specified in USING clause does not exist in right table
********** Fehler **********

ERROR: column "d" specified in USING clause does not exist in right table
SQL Status:42703

Schöne Grüße
Thomas

2014-03-12 20:32 GMT+01:00 Andreas Kretschmer <akretschmer(at)spamfence(dot)net>:

> Thomas Drebert <drebert(at)web(dot)de> 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 (
> pgsql-de-allgemein(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein
>

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Kretschmer - internet24 GmbH 2014-03-13 05:08:18 Re: Abfrage mit Datum als Serie.
Previous Message Andreas Kretschmer 2014-03-12 19:32:57 Re: Abfrage mit Datum als Serie.