Die Anforderung, Auswertungen zu erstellen, die die Daten auf stündlicher Basis aufbereiten und auswerten, findet sich in vielen Bereichen. Zum Beispiel, Anzahl der Telefonate pro Mitarbeiter pro Stunde, Durchschnittswerte irgendwelcher Meßwerte pro Stunde usw... Hier ist eine einfache, aber effektive Methode, solche Anforderungen umzusetzen:
USE TEMPDB
CREATE TABLE #dummy
(
c1 INT
, d1 DATETIME
)
INSERT INTO #dummy VALUES(4,'20050207 12:33:00')
INSERT INTO #dummy VALUES(4,'20050207 10:33:00')
INSERT INTO #dummy VALUES(2,'20050207 10:34:00')
INSERT INTO #dummy VALUES(6,'20050207 11:33:00')
INSERT INTO #dummy VALUES(2,'20050207 11:34:00')
SELECT
DATEADD(hh,DATEDIFF(hh,0,d1),0) Stunden
, AVG(c1) Durchschnitt
, COUNT(*) Anzahl
FROM #dummy
GROUP BY DATEADD(hh,DATEDIFF(hh,0,d1),0)
ORDER BY Stunden
DROP TABLE #dummy
Stunden Durchschnitt Anzahl
------------------------------------------------------ ------------ -----------
2005-02-07 10:00:00.000 3 2
2005-02-07 11:00:00.000 4 2
2005-02-07 12:00:00.000 4 1
(3 row(s) affected)