GROUP BY für fortlaufende Zeilen in SQL

Ausgehend von der folgenden Tabelle:

ID   State  Date
12   1      2009-07-16 10:00
45   2      2009-07-16 13:00
67   2      2009-07-16 14:40
77   1      2009-07-16 15:00
89   1      2009-07-16 15:30
99   1      2009-07-16 16:00

Frage:
Wie kann ich nach dem Feld "Status" GRUPPIEREN, während die Grenzen zwischen den Statusänderungen beibehalten werden?

SELECT MIN(ID) AS ID, State, MIN(Date) AS Date, COUNT(ID) AS Count
FROM table GROUP BY State

führt zu folgenden Ergebnissen:

ID   State  Date              Count
12   1      2009-07-16 10:00  4
45   2      2009-07-16 13:00  2


aber das wird erwartet:

ID   State  Date              Count
12   1      2009-07-16 10:00  1
45   2      2009-07-16 13:00  2
77   1      2009-07-16 15:00  3


Ist das in SQL möglich? Bisher habe ich keine Lösung gefunden ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage