Как рассчитать количество строк, используя скользящее окно, основанное на времени?

У меня есть следующая простая схема :

CREATE TABLE Data (ts DATETIME) INSERT INTO Data VALUES ('2015-11-11 06:20:41.937'), ('2015-11-11 06:20:42.017'), ('2015-11-11 06:20:42.060'), ('2015-11-11 06:20:44.837'), ('2015-11-11 06:20:44.853'), ('2015-11-11 06:20:45.640'), ('2015-11-11 06:20:46.197'), ('2015-11-11 06:20:46.233'), ('2015-11-11 06:21:59.613'), ('2015-11-11 06:21:59.613'), ('2015-11-11 06:22:17.377'), ('2015-11-11 06:23:40.187'), ('2015-11-11 06:24:40.227'), ('2015-11-11 06:24:40.227') 

На самом деле, конечно, больше столбцов.

Во всяком случае, я пытаюсь выяснить, как я могу вычислить для каждой строки количество строк за 10 секунд, начиная с этой строки. Для данных примера результат должен быть:

 ts Count 2015-11-11 06:20:41.937 8 2015-11-11 06:20:42.017 7 2015-11-11 06:20:42.060 6 2015-11-11 06:20:44.837 5 2015-11-11 06:20:44.853 4 2015-11-11 06:20:45.640 3 2015-11-11 06:20:46.197 2 2015-11-11 06:20:46.233 1 2015-11-11 06:21:59.613 2 2015-11-11 06:21:59.613 2 2015-11-11 06:22:17.377 1 2015-11-11 06:23:40.187 3 2015-11-11 06:24:40.227 2 2015-11-11 06:24:40.227 2 

Есть идеи?

Вы можете использовать CROSS APPLY :

 SELECT ts, cnt FROM Data d CROSS APPLY( SELECT COUNT(*) FROM Data WHERE ts BETWEEN d.ts AND DATEADD(SECOND, 10, d.ts) ) AS x(cnt) ORDER BY d.ts 

Попробуй это

 select d.ts, (select count(*) cnt from data d2 where d2.ts>=d.ts and d2.ts<dateadd(second,10,d.ts)) cnt from data d 
Interesting Posts

Как настроить модель данных для настраиваемого приложения

MS Access для SQL Sever в C # .NET

Среднее значение за минуту от второго

Псевдонимы в подзапросе (коррелированный), встроенный в оператор select

Лучший способ дезинфекции unparametrizable sql

как я должен обеспечить эффективную работу таблицы

Как найти дату первого дня текущей недели

Правильно ли это, чтобы очистить параметры SqlDataAdapter и Sql Command и закрыть соединение?

Как вернуть только дату из типа данных SQL Server DateTime

Как я могу сделать эту расчетную меру корректной в SSAS?

SQLServer (2000 и 2005) запрос для информации о безопасности / роли

Как я могу сгенерировать идентификатор с префиксом, числовым номером и суффикс?

Можно ли окончательно определить, была ли выдана команда DML из хранимой процедуры?

как заставить установку студии управления?

Улучшение производительности и производительности .NET / MSSQL

Давайте будем гением компьютера.