- 20 April 2006
- 22.682
- 1.316
Moin.
Ich habe eine Tabelle mit Daten, vereinfacht einmal INT mit Unix-Timestamp und einem INT für mein Datum, was ich haben will. Daten sind mehrmals täglich vorhanden.
Mein Ziel ist es jetzt, eine Tabelle mit dem jeweils ersten Datum eines jeden Tages herauszulesen.
Mein erster Versuch ist es, alles in der DB zu machen:
Das is aber irgendwie doch sehr DB-intensiv, wenn ich das richtig sehe.
Meine nächste Überlegung war es, einfach alle Datensätze im Intervall zu selektieren und dann in PHP nur das zu verarbeiten, was ich brauch.
Aber ob das wirklich besser is ?
Fragen:
Ich habe eine Tabelle mit Daten, vereinfacht einmal INT mit Unix-Timestamp und einem INT für mein Datum, was ich haben will. Daten sind mehrmals täglich vorhanden.
Mein Ziel ist es jetzt, eine Tabelle mit dem jeweils ersten Datum eines jeden Tages herauszulesen.
Mein erster Versuch ist es, alles in der DB zu machen:
Code:
[FONT=Courier New][B][COLOR=#9932cc]SELECT[/COLOR][/B] time, data
[B][COLOR=#9932cc]FROM[/COLOR][/B] [COLOR=Black][B]table[/B][/COLOR]
[B][COLOR=#9932cc]WHERE[/COLOR][/B] time [B][COLOR=#9932cc]IN[/COLOR][/B] [/FONT][FONT=Courier New][COLOR=#9932cc]([/COLOR]
[/FONT][FONT=Courier New][B][COLOR=#9932cc]SELECT[/COLOR][/B] [B][COLOR=#9932cc]MIN[/COLOR][/B][COLOR=#9932cc]([/COLOR]time[COLOR=#9932cc])[/COLOR] [B][COLOR=#9932cc]AS[/COLOR][/B] time
[B][COLOR=#9932cc]FROM[/COLOR][/B] [COLOR=Black][B]table[/B][/COLOR]
[B][COLOR=#9932cc]WHERE[/COLOR][/B] time [B][COLOR=#9932cc]BETWEEN[/COLOR][/B] %u [B][COLOR=#9932cc]AND[/COLOR][/B] %u
[B][COLOR=#9932cc]GROUP[/COLOR][/B] [B][COLOR=#9932cc]BY[/COLOR][/B] [B][COLOR=#9932cc]TO_DAYS[/COLOR][/B][COLOR=#9932cc]([/COLOR][COLOR=#9932cc][B]FROM_UNIXTIME[/B]([/COLOR]time[COLOR=#9932cc])[/COLOR][/FONT][FONT=Courier New][COLOR=#9932cc])[/COLOR][/FONT][FONT=Courier New][COLOR=#9932cc]
)[/COLOR][/FONT][FONT=Courier New][B][COLOR=#9932cc]
ORDER[/COLOR][/B] [B][COLOR=#9932cc]BY[/COLOR][/B] time [B][COLOR=#9932cc]DESC[/COLOR][/B];[/FONT]
Meine nächste Überlegung war es, einfach alle Datensätze im Intervall zu selektieren und dann in PHP nur das zu verarbeiten, was ich brauch.
Aber ob das wirklich besser is ?

Fragen:
- Wie würdet ihr das Problem lösen ?
- Spätestens, wenn ich den ersten Wert z.B. eines jeden Vierteltages (nächster Datensatz zu 0:00, 6:00, 12:00, 18:00 Uhr) haben will, funktioniert der erste Ansatz nicht mehr. Kann ich das Problem allgemein in der DB lösen ? Falls nein, würde es eh auf die zweite Überlegung hinauslaufen