Это трудно объяснить, но из этого примера должно быть ясно.TSQL - COUNT количество строк в другом состоянии, чем текущая строка
Таблица ТАБЛИЦА:
Name State Time
--------------------
A 1 1/4/2012
B 0 1/3/2012
C 0 1/2/2012
D 1 1/1/2012
Хотелось бы
select * from TABLE where state=1 order by Time desc
плюс дополнительный столбец «Пропущенные», содержащий число строк, после того, как тот, где состояние = 1 в состояние 0, другими словами, выход должен выглядеть следующим образом:
Name State Time Skipped
A 1 1/4/2012 2 -- 2 rows after A where State != 1
D 1 1/1/2012 0 -- 0 rows after D where State != 1
0 также следует сообщать в случае, если 2 последовательных ряда являются в состоянии = 1, т. е. между этими строками нет ничего, кроме 1.
Кажется, что CTE здесь, но не может понять, как подсчитывать строки, где состояние! = 1. Любая помощь будут оценены.
(MS SQL Server 2008)
блестящий, этот подход отлично работает. Благодарю. – Califf