Мне нужно подсчитать последовательные строки на основе значения в другом столбце.Подсчет строк подряд - SQL Server 2008
Я совершенно новый, когда дело доходит до SQL - так что спросите, если что-то неясно.
У меня есть SQL Server 2008, поэтому LEAD()
и LAG()
не вступают в игру, то же самое с OVER() с базой размера окна на разделе.
Пример набора данных:
SLOT Blocked
-------------------------------
2015-02-09 07:00:00.000 0
2015-02-09 07:15:00.000 0
2015-02-09 07:30:00.000 0
2015-02-09 07:45:00.000 1
2015-02-09 08:00:00.000 1
2015-02-09 08:15:00.000 1
2015-02-09 08:30:00.000 0
2015-02-09 08:45:00.000 0
2015-02-09 09:00:00.000 0
2015-02-09 09:15:00.000 0
2015-02-09 09:30:00.000 1
2015-02-09 09:45:00.000 1
2015-02-09 10:00:00.000 1
2015-02-09 10:15:00.000 1
2015-02-09 10:30:00.000 0
2015-02-09 10:45:00.000 0
2015-02-09 11:00:00.000 0
2015-02-09 11:15:00.000 0
2015-02-09 11:30:00.000 0
2015-02-09 11:45:00.000 0
2015-02-09 12:00:00.000 0
Данные упорядочены по SLOT
. Я хотел бы считать строки над разделами where Blocked = 0
.
Результирующий набор я хотел бы получить:
SLOT Blocked RowNum
-------------------------------------------
2015-02-09 07:00:00.000 0 1
2015-02-09 07:15:00.000 0 2
2015-02-09 07:30:00.000 0 3
2015-02-09 07:45:00.000 1 0
2015-02-09 08:00:00.000 1 0
2015-02-09 08:15:00.000 1 0
2015-02-09 08:30:00.000 0 1
2015-02-09 08:45:00.000 0 2
2015-02-09 09:00:00.000 0 3
2015-02-09 09:15:00.000 0 4
2015-02-09 09:30:00.000 1 0
2015-02-09 09:45:00.000 1 0
2015-02-09 10:00:00.000 1 0
2015-02-09 10:15:00.000 1 0
2015-02-09 10:30:00.000 0 1
2015-02-09 10:45:00.000 0 2
2015-02-09 11:00:00.000 0 3
2015-02-09 11:15:00.000 0 4
2015-02-09 11:30:00.000 0 5
2015-02-09 11:45:00.000 0 6
2015-02-09 12:00:00.000 0 7
Спасибо заранее!
просто продолжить работу с условием случая, как этот случай, когда Blocked = 0, то ROW_NUMBER() OVER (PARTITION BY блокированного ORDER BY блокированных) ELSE 0 END – mohan111
Может быть, я не уточнил, достаточно - после нахождения 1 в столбце «заблокирован» счетчик должен перезагрузиться, как в ожидаемом примере результата. Возможно, мой страшный английский - проблема. – TotallyNewb
будут ли когда-либо пробелы в данных? –