Ho una tabella denominata DATA su Microsoft SQL Server 2008 R2 con tre campi interi non annullabili: ID, sequenza e valore. I valori di sequenza con lo stesso ID saranno consecutivi, ma possono iniziare con qualsiasi valore. Ho bisogno di una query che restituirà un conteggio di righe consecutive con lo stesso ID e Valore.SQL Server GROUP BY COUNT Solo righe consecutive
Per esempio, diciamo che ho i seguenti dati:
ID Sequence Value
-- -------- -----
1 1 1
5 1 100
5 2 200
5 3 200
5 4 100
10 10 10
voglio il seguente risultato:
ID Start Value Count
-- ----- ----- -----
1 1 1 1
5 1 100 1
5 2 200 2
5 4 100 1
10 10 10 1
ho cercato
SELECT ID, MIN([Sequence]) AS Start, Value, COUNT(*) AS [Count]
FROM DATA
GROUP BY ID, Value
ORDER BY ID, Start
ma che dà
ID Start Value Count
-- ----- ----- -----
1 1 1 1
5 1 100 2
5 2 200 2
10 10 10 1
che raggruppa tutte le righe con gli stessi valori, non solo righe consecutive.
Qualche idea? Da quello che ho visto, credo di dover lasciare unire il tavolo con se stesso su righe consecutive usando ROW_NUMBER(), ma non sono sicuro di come ottenere il conteggio.
Grazie in anticipo.
Cerca [spazi e isole] (http://stackoverflow.com/questions/tagged/gaps-and-islands) –