Это не так просто, как создание интервалов времени, длительностью N минут. Одна запись может быть 10:04, а другая 10:17, где N равно 15.Групповые записи, когда дата находится в пределах N минут
Возможно, пользовательская функция будет работать, возможно, CTE. Это может потребовать нескольких объединений в одной и той же исходной таблице.
Я ищу наиболее «изящное» решение. Может быть, есть функция в SQL, о которой я не знал, что делает это проще.
Вот базовый сценарий, чтобы сделать ответы более совместимыми друг с другом:
create table Comparisons (
DateField DateTime NOT NULL,
Amount int not null, -- default to 5
)
insert into Comparisons (DateField) values ('2000-01-01 10:04'),('2000-01-01 10:17'),
('2000-01-01 12:01'),('2000-01-01 11:54'),('2000-01-01 03:02'),('2000-01-01 03:05'),
('2000-01-01 05:02'),('2000-01-01 05:05'),('2000-01-01 05:19')
выход ожидается:
- мин: .. 10:04, макс: .. 10:17, сумма: 10
- мин: .. 11:54, макс: .. 12:01, сумма: 10
- мин: .. 3:02, макс: .. 3:05, сумма: 10
- мин: .. 05: 0 2, max: .. 05:19, sum: 15 [optional]
Последний выход не является обязательным, но если изящное решение имеет это побочный эффект, это приемлемо. Если изящное решение не может обеспечить этот дополнительный последний выход, это не будет прерывание сделки.
Редактировать свой вопрос и предоставить образцы данных и желаемые результаты. Как написано, вопрос довольно бессмыслен. –
@ GordonLinoff сделано. Я уже был на нем, просто следил. – Todd
Что вы будете делать, если, скажем, N = 15, и у вас есть время 10:04, 10:17 и 10:25? – ZLK