GROUP BY dla ciągłych wierszy w SQL
Biorąc pod uwagę następującą tabelę:
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
Pytanie:
Jak można pogrupować według pola „Stan”, jednocześnie zachowując granice między zmianami stanu?
SELECT MIN(ID) AS ID, State, MIN(Date) AS Date, COUNT(ID) AS Count
FROM table GROUP BY State
powoduje, że:
ID State Date Count 12 1 2009-07-16 10:00 4 45 2 2009-07-16 13:00 2
ale to jest oczekiwane:
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
Czy jest to możliwe w SQL? Jak dotąd nie znalazłem rozwiązania ...