Ich versuche herauszufinden, die effizienteste Art der Berechnung von Statistiken mit Daten aus MySQL-Datenbank mit Daten.MySQL-Gruppierung nach Saison
Derzeit verwende ich die folgende Syntax
Beispiel:
SELECT sum(Precipitation) from DataTable GROUP BY YEAR(Datetime)
Die perfekt funktioniert gut, bekomme ich den Gesamtniederschlag pro Jahr. Jetzt möchte ich jedoch die Möglichkeit implementieren, den Beginn der Regenzeit festzulegen. An einigen Orten könnte die Regenzeit zum Beispiel im September beginnen. In diesem Fall würde ich die gleiche Berechnung benötigen, dh auch gruppiert nach "Jahren", aber immer seit September bis Aug.
Ich habe darüber nachgedacht, wie man das macht und der einzige Weg, an den ich denken könnte, wäre die Berechnung der monatliche Summen und die Verwendung von PHP versuchen, sie zu addieren. Aber das Problem ist, dass das wahrscheinlich viel langsamer sein würde, da es viele Daten gibt und das ursprüngliche Skript nur diese eine Zeile verwendet.
Gibt es eine effizientere Möglichkeit dann immer etwas, wie
2014 - xyz Zoll, 2015 - xyz Zoll, aber wo die 2014 würde beispielsweise zu Saison entsprechen 2014/2015 usw.
Die Daten in der Tabelle ist so: Spalte 1 ist immer die Datetime und dann der tatsächliche Wert, Daten in 5-Minuten-Intervallen. Ich muss die Tabellenstruktur pflegen, daher kann ich keine andere Tabelle erstellen, in der die Werte anders organisiert wären.
Verändern sich diese Jahreszeiten von Jahr zu Jahr, oder ist es jedes Jahr das gleiche feste Datum? Ich bitte nur darum, den richtigen Rat zu geben. In irgendeiner Weise wird das SQL größer und komplexer, aber haben Sie keine Angst davor! – Bjoern