SQL: Frage zum erstellen einer Query
Hallo,
ich bin gerade dabei ein Programm zu schreiben, welches auf eine SQL-Datenbank zugreift. Es funktioniert auch alles, nur leider werden soviele Queries erzeugt, dass die Geschwindigkeit schon ziemlich leidet.
Das Programm soll aus einer Tabelle die aussieht wie folgt:
timestamp | wert
1 | 20
2 | 30
3 | 10
4 | 40
5 | 30
6 | 200
usw.
immer z.B. die ersten 5 Werte zusammenfassen d.h. aus diesen Werten den maximalen Wert nehmen, so dass die Tabelle so aussieht:
1 | 40
usw.
Nun soll es aus diesen resultierenden Werten den Durchschnitt bei gegebener timestamp bilden. So dass, wenn ich z.B. den Durchschnitt fuer timestamp 5 anfordere mit einem Intervall von 3, der Wert von 5,4,3 genommen wird, alles addiert wird, durch 3 geteilt und zurueckgeliefert.
Puuuh ich hoffe ich hab mich bis jetzt einigermassen verständlich ausgedrückt :)
Ich habe das ganze nun so programmiert:
PHP-Code:
fasseimmer5Wertezusammen(timestamp)
{
query:hole 5 werte und ermittle das maximum
return maximalwert
}
ermittledenDurchschnitt(timestamp, intervall)
{
for(int i=timestamp-intervall, i<=timestamp, i++)
{
ergebnis+=fasseimmer5Wertezusammen(i)
}
return ergebnis/i
}
Wie ihr euch vorstellen koennt braucht das ganze queries ohne Ende und laeuft grotten-langsam.
Nun meine eigentliche Frage: kann man das "5-werte zusammenfassen" und "aus mehreren dieser 5er-Werte den Durschnitt bilden" nicht in eine einzige Query verpacken?
Hoffe ich hab mich klar genug ausgedrückt, dass mit jemand helfen kann :) auf jedenfall vielen Dank schonmal...