Gray
Erfahrenes Mitglied
Hi,
ich habe eine Tabelle mit positionen und möchte mir die Anzahl der positionen 1-10 in einem Monat anzeigen lassen.
Nun ist das Problem das gelegentlich die Daten mehrfach pro Tag erfasst werden. Es darf aber pro Tag nur ein Wert (der niedrigste) beachtet werden.
Die Tabelle sieht ungefähr wie folgt aus:
Den Timestamp habe ich zur Verdeutlichung durch das Datum und die Uhrzeit ersetzt.
Es kommt also der 2.2.12 und der 5.5.12 jeweils zwei mal vor, hierbei daf aber immer nur der Eintrag mit der niedrigsten Position beachtet werden.
Das Ergebnis welches ich in diesem Fall haben möchte währe 5
Da an insgesamt 5 Tagen die position zwischen 1 und 10 gelegen hat.
--
Derzeit gehe ich wie folgt vor.
Ich gehe jeden Tag des Monats per for-Schleife durch und kontrollieren dann jeden Tag einzeln.
Insofern ein Ergebnis heraus kommt addiere ich einfach +1 zu einer Variable hinzu.
--
Nun würde ich gerne den gesamten Monat in einem Durchlauf kontrollieren. Mein Problem ist hierbei das ich kein GROUP BY verwenden kann, da der Timestamp von Tag X ein paar Minuten oder auch Stunden auseinander liegen kann.
Ich hoffe Ihr versteht was ich meine, thx.
ich habe eine Tabelle mit positionen und möchte mir die Anzahl der positionen 1-10 in einem Monat anzeigen lassen.
Nun ist das Problem das gelegentlich die Daten mehrfach pro Tag erfasst werden. Es darf aber pro Tag nur ein Wert (der niedrigste) beachtet werden.
Die Tabelle sieht ungefähr wie folgt aus:
Code:
timestamp |position
----------------------
1.1.12 10:48| 1
2.2.12 09:33| 4
2.2.12 16:43| 5
3.2.12 08:00| 2
4.2.12 22:59| 3
5.2.12 19:45| 11
5.2.12 23:33| 9
6.2.12 19:45| 15
Den Timestamp habe ich zur Verdeutlichung durch das Datum und die Uhrzeit ersetzt.
Es kommt also der 2.2.12 und der 5.5.12 jeweils zwei mal vor, hierbei daf aber immer nur der Eintrag mit der niedrigsten Position beachtet werden.
Das Ergebnis welches ich in diesem Fall haben möchte währe 5
Da an insgesamt 5 Tagen die position zwischen 1 und 10 gelegen hat.
--
Derzeit gehe ich wie folgt vor.
Ich gehe jeden Tag des Monats per for-Schleife durch und kontrollieren dann jeden Tag einzeln.
Code:
SELECT
position
FROM
monitoring
WHERE
timestamp BETWEEN $timestamp_frueh AND $timestamp_abend
AND
position BETWEEN 1 AND 10
ORDER BY
position
LIMIT 1
Insofern ein Ergebnis heraus kommt addiere ich einfach +1 zu einer Variable hinzu.
--
Nun würde ich gerne den gesamten Monat in einem Durchlauf kontrollieren. Mein Problem ist hierbei das ich kein GROUP BY verwenden kann, da der Timestamp von Tag X ein paar Minuten oder auch Stunden auseinander liegen kann.
Ich hoffe Ihr versteht was ich meine, thx.
Zuletzt bearbeitet: