Here is a stub for youDECLARE @Sample TABLE ( UserID INT, LocationID INT, IsOK BIT, CheckTime DATETIME )INSERT @SampleSELECT 1, 1, 1, '20100101' UNION ALLSELECT 1, 1, 1, '20100103' UNION ALLSELECT 1, 2, 0, '20100104' UNION ALLSELECT 1, 2, 1, '20100105' UNION ALLSELECT 1, 2, 1, '20100106' UNION ALLSELECT 2, 1, 0, '20100102' UNION ALLSELECT 2, 2, 1, '20100107' UNION ALLSELECT 1, 1, 0, '20100102' UNION ALLSELECT 1, 1, 1, '20100106' UNION ALLSELECT 1, 1, 1, '20100104' UNION ALLSELECT 1, 1, 1, '20100105';WITH cteAS ( SELECT UserID, LocationID, IsOK, CheckTime, ROW_NUMBER() OVER (PARTITION BY UserID, LocationID ORDER BY CheckTime) - ROW_NUMBER() OVER (PARTITION BY UserID, LocationID, IsOK ORDER BY CheckTime) AS Yak FROM @Sample)SELECT UserID, LocationID, IsOK, CheckTime, COUNT(*) OVER (PARTITION BY UserID, LocationID, IsOK, Yak) AS EntriesFROM cteORDER BY UserID, LocationID, CheckTime
N 56°04'39.26"E 12°55'05.63"