Я мог бы выяснить это:
Select t1.measure, t1.bin, Min(t1.date) startDate, Max(t1.date) EndDate, count(*)
from(
select date, measure, row_number() over (order by date,measure), floor(((row_number() over (order by date,measure))-1) /88) as bin
from dwh.overview_all_data
order by date, measure
) t1
group by t1.measure, t1.bin
order by t1.measure, t1.bin, startDate, EndDate
Число "88" в столбце корзины рассчитывается отдельно следующим образом:
select 8819 / 100 -- = 88
"100" - это числоящики (группы), которые мы хотим.Он задается пользователем.
«8819» - это число строк внутреннего оператора, и его можно вернуть с помощью этого сценария:
select count(*) from
(
select date, measure, row_number() over (order by date, measure )
from dwh.overview_all_data
where date between '1998-01-01' and '2000-01-01'
order by date, measure
) t
, разделив эти два числа, которые мыполучить количество строк в каждой ячейке.