GROUP BY para linhas contínuas no SQL

Dada a seguinte tabela:

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

Questão:
Como posso GROUP pelo campo "Estado", mantendo as fronteiras entre as mudanças de estado?

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

resulta no seguinte:

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


mas isso é esperado:

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


Isso é possível no SQL? Eu não encontrei uma solução até agora ...

questionAnswers(4)

yourAnswerToTheQuestion