Zeitintervall in MySQL abrufen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
klaus
Beiträge: 102
Registriert: 09.06.2003 11:32:10

Zeitintervall in MySQL abrufen

Beitrag von klaus » 06.10.2005 07:57:44

Moin,

ich möchte aus Wetterdaten den Durchschnittstemperatur von
Oktober (Jahr) bis Juni (Jahr+1) ausgeben lassen.
Allerdings weiss ich nicht wie man diese Anfrage stellt,
das Problem liegt darin, dass ich nicht nach Jahren gruppieren kann.


Vielen Dank
Matthias

P.S.: Folgender Code funktioniert in "einem" Jahr

Code: Alles auswählen

 select distinct station, YEAR(Datum),'Jan-April', avg(Temperatur),sum(Niederschlag),avg(relFeuchte) from stundenwetter where MONTH(Datum)<5 group by YEAR(Datum), Station;

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 06.10.2005 10:09:09

Ich hab das mal von 'weitere Dienste' verschoben, da der SQL Deamon ja läuft und es Dir um die SQL Abfrage geht.

Die Abfroge oben geht und tut? Oder nicht? Wozu brauchst Du das Distinct?

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

klaus
Beiträge: 102
Registriert: 09.06.2003 11:32:10

Beitrag von klaus » 06.10.2005 11:23:22

Moin Bert,

ja die Abfrage funktioniert, allerdings darf der Zeitraum in
meiner Abfrage nicht in zwei verschiedenen Kalenderjahren sein.
Das distinct ist wahrscheinlich nicht notwendig.

Es ist übrigens die MySQL Version 4.1 in Sarge, so
dass Sub-Selects möglich sind.

Vielen Dank
Matthias

Benutzeravatar
dominator
Beiträge: 790
Registriert: 26.08.2003 10:05:37
Wohnort: Neuerdings meistens im Bierparadies Oberfranken

Re: Zeitintervall in MySQL abrufen

Beitrag von dominator » 06.10.2005 11:58:47

klaus hat geschrieben:...
Durchschnittstemperatur von Oktober (Jahr) bis Juni (Jahr+1) ausgeben lassen ...

Code: Alles auswählen

 select distinct station, YEAR(Datum),'Jan-April', avg(Temperatur),sum(Niederschlag),avg(relFeuchte) from stundenwetter where MONTH(Datum)<5 group by YEAR(Datum), Station;
Du kannst doch nicht nach "jahr, jahr+1" gruppieren, ein Jahr kommt ja schliesslich in zwei Intervallen vor :!:
Alternativ per Skript-Sprache oder evtl mit fortlaufendem Zähler für die Messintervalle.
gruss + viel erfolg

Michael
--
Aus aktuellem Anlass :
"Der Glubb is a Depp" - Fränkische Weisheit

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 06.10.2005 12:59:08

Willst Du nicht eigentlich nach den Monaten Gruppieren? Und zwar über den Zeitraum von einem Jahr?

Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Antworten