SQL Monatliche Auswertung

nico525

Ensign
Registriert
Feb. 2009
Beiträge
185
Hallo Leute,
ich weiß irgendwie nicht mehr weiter und mittlerweile bezweifle ich, dass dies mit reinem SQL möglich ist, aber vielleicht habt ihr ja eine Idee, wie ich folgendes Problem umsetzen kann:
Ich habe hier verschiedene Geräte, deren Werte überwacht werden müssen. Derzeit werden die Werte minütlich in eine MySQl Datenbank geschrieben. Diese Tabelle hat dann so ungefähr diese Form: ID; Value; Date(Timestamp);
würde ich daraus gerne eine monatliche Auswertung erstellen, die mir für jeden Tag den maximalen, den minimalen und den durchschnittlichen Wert angibt.
Ich weiß jetzt auch ehrlich gesagt nicht, wie ich da bei der Selektion anfangen soll... Ist das mit reinem SQL möglich?

Gruß,
Nico
 
In Oracle ginge das so:

SELECT MIN(value), MAX(value), AVG(value), TO_CHAR('DD.MM.YYYY', date)
FROM table
GROUP BY TO_CHAR('DD.MM.YYYY', date)

Sollte für MySQL prinzipiell auch gehen, nur die Stelle mit dem Datum solltest du mal in der MySQL-Doku nachschlagen (der Teil wird wahrscheinlich nicht 1:1 in MySQL funktionieren). In Oracle ist der DATE-Datentyp immer auch mit einer Uhrzeit verbunden. Falls deine Spalte in MySQL wirklich nur das Datum enthält, sollte das reichen:

SELECT MIN(value), MAX(value), AVG(value), date
FROM table
GROUP BY date
 
Zuletzt bearbeitet:
Autsch...
Manchmal sieht man den Wald vor lauter Bäumen nicht...
Wie kam ich nicht auf die Idee nach dem Datum zu gruppieren, wohingegen genau das mein Wunsch ist? :stock:

Aktuell ist es so gelöst:
Code:
SELECT DATE_FORMAT( FROM_UNIXTIME(  `date` ) ,  '%e.%c' ) Tag, MAX(  `value` ) Maximum, MIN(  `value` ) Minimum, AVG(  `value` ) Durchschnitt
FROM Werte
GROUP BY Tag

jetzt nur noch eine Beschränkung auf den Monat, aber das ist einfach - danke dir für den Ansatz!
 
Zurück
Oben