MySQL - Wie wählen Sie die Zeilen mit den min(timestamp) pro Stunde an einem bestimmten Datum

Ich habe eine Tabelle von Produktion Lesungen und brauchen, um ein ResultSet mit einer Zeile für die min(Zeitstempel) für JEDE Stunde.
Die Spalte layout ist ziemlich einfach:
ID,TIMESTAMP,SOURCE_ID,SOURCE_VALUE

Daten Beispiel würde wie folgt Aussehen:

123,'2013-03-01 06:05:24',PMPROD,12345678.99

124,'2013-03-01 06:15:17',PMPROD,88888888.99

125,'2013-03-01 06:25:24',PMPROD,33333333.33

126,'2013-03-01 06:38:14',PMPROD,44444444.44

127,'2013-03-01 07:12:04',PMPROD,55555555.55

128,'2013-03-01 10:38:14',PMPROD,44444444.44

129,'2013-03-01 10:56:14',PMPROD,22222222.22

130,'2013-03-01 15:28:02',PMPROD,66666666.66

Datensätze Hinzugefügt werden, um diese Tabelle im Laufe des Tages und der source_value ist bereits berechnet, so dass keine Summe benötigt wird.

Ich kann nicht herausfinden, wie man eine Zeile für die min(timestamp) für jede Stunde der current_date.

select *
from source_readings
use index(ID_And_Time)
where source_id = 'PMPROD'
and   date(timestamp)=CURRENT_DATE
and   timestamp =
        ( select min(timestamp) 
            from source_readings use index(ID_And_Time)
            where source_id = 'PMPROD'
        )

Den obigen code, natürlich, gibt mir einen Datensatz. Ich muss einen Datensatz für den min(h(timestamp)) der current_date.

Mein ResultSet enthalten sollte, die Zeilen-IDs: 123,127,128,130. Ich habe schon stundenlang mit ihm. Wer ist mein held? 🙂

InformationsquelleAutor mwm4 | 2013-03-01
Schreibe einen Kommentar