Mam tabelę o nazwie DATA na serwerze Microsoft SQL Server 2008 R2 z trzema nieululującymi w stan liczbami całkowitymi polami: identyfikator, sekwencja i wartość. Wartości sekwencji o tym samym identyfikatorze będą następujące po sobie, ale mogą zaczynać się od dowolnej wartości. Potrzebuję zapytania, które zwróci liczbę kolejnych wierszy z tym samym identyfikatorem i wartością.GRUPA SQL Server PRZEZ COUNT Kolejne wiersze Tylko
Na przykład, powiedzmy, że mam następujące dane:
ID Sequence Value
-- -------- -----
1 1 1
5 1 100
5 2 200
5 3 200
5 4 100
10 10 10
Chcę następujący wynik:
ID Start Value Count
-- ----- ----- -----
1 1 1 1
5 1 100 1
5 2 200 2
5 4 100 1
10 10 10 1
próbowałem
SELECT ID, MIN([Sequence]) AS Start, Value, COUNT(*) AS [Count]
FROM DATA
GROUP BY ID, Value
ORDER BY ID, Start
ale który daje
ID Start Value Count
-- ----- ----- -----
1 1 1 1
5 1 100 2
5 2 200 2
10 10 10 1
grupująca wszystkie wiersze o tych samych wartościach, a nie tylko kolejne wiersze.
Wszelkie pomysły? Z tego, co widziałem, uważam, że muszę odejść dołączyć do stołu sam w kolejnych wierszach za pomocą ROW_NUMBER(), ale nie jestem pewien dokładnie, jak uzyskać zliczenia z tego.
Z góry dziękuję.
Sprawdź [luki i wyspy] (http://stackoverflow.com/questions/tagged/gaps-and-islands) –