Datenanfrage in MySQL: Zeitintervall über Jahre

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
klaus
Beiträge: 102
Registriert: 09.06.2003 11:32:10

Datenanfrage in MySQL: Zeitintervall über Jahre

Beitrag von klaus » 19.12.2005 10:25:10

Moin,

ich möchte uas meiner Datenbank mit Wetterdaten
das Intervall von Oktober bis April laden. Und das aus
den Jahren 1993-2005.
D.h. ich möchte je Jahr ein solches Intervall,
leider kann ich nur Intervalle innerhalb eines Jahres
mit

Code: Alles auswählen

SELECT Station,YEAR(Datum) ,avg(Niederschlag) FROM xxxxx WHERE month(Datum)<7 and month(Datum)>3 GROUP BY Station, YEAR(Datum)
anfragen, da ich GROUP YEAR(Datum) verwende. Deswegen ist dies auch nicht der gesuchte Zeitraum (Okt-Apr), sondern als Beispiel April bis Juni.

System Debian Sarge, MySQL4.1

Für Anregungen bedanke ich mich schon mal
Matthias
Zuletzt geändert von klaus am 19.12.2005 12:30:17, insgesamt 1-mal geändert.

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 19.12.2005 11:12:37

hmm.. Scripting ok?

Code: Alles auswählen

#------------------------------------------------------------------------------
for (( i=1993; i<=2005; i++ ))
do
    mysql -u xxx -pYYYY -e "SELECT Station,YEAR(Datum) ,avg(Niederschlag) FROM xxxxx WHERE month(Datum)<7 and month(Datum)>3 GROUP BY Station, YEAR($i)"
done > /wahlfreie/Datei.txt
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

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

Beitrag von klaus » 19.12.2005 12:29:16

Moin,

danke für die schnelle Antwort SAVAR,
allerdings ist das Problem nicht,
dass alle Jahre erfasst werden,
sondern dass die Intervalle nicht
innerhalb eines Jahres (Oktober-April),
sondern jeweils in zwei aufeinanderfolgenden
Jahren liegen. Deswegen funktioniert das GROUP BY YEAR auch nicht,
aber ich weiss nicht nach was ich GROUPIEREN soll.

Danke trotzdem
Matthias

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 19.12.2005 18:14:44

oh sorry.. ja hab ich falsch gelesen.. also leider nicht so simpel.
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

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

Beitrag von dominator » 19.12.2005 19:37:38

Genau die gleiche Problemstellung hatten wir schonmal im Forum, ist damals nichts vernünftiges rausgekommen :?:
gruss + viel erfolg

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

Benutzeravatar
AK-Palme
Beiträge: 411
Registriert: 25.05.2004 15:38:30
Kontaktdaten:

Beitrag von AK-Palme » 19.12.2005 23:14:19

müsste das nicht so in etwa gehen?

Code: Alles auswählen

SELECT Station,YEAR(Datum) ,avg(Niederschlag) FROM xxxxx WHERE Datum BETWEEN 1993-08-01 AND 2005-04-31 GROUP BY Station, YEAR(Datum)

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 20.12.2005 11:57:59

Ein Ansatz:

Code: Alles auswählen

SELECT 
    Station, 
    YEAR( Datum ) - ( MONTH( Datum ) <= 4 ) AS "Saison", 
    AVG( Niederschlag )
FROM xxxxx
WHERE 
    MONTH( Datum ) <= 4
    OR 
    MONTH( Datum ) >= 10
GROUP BY 
    Station, 
    Saison

Antworten