Я пытаюсь найти частоту в днях, с которой (id) происходит в событии. (в sql ssms) основные столбцы: id и дата , дата сравнения находится в 1 столбце, я присоединюсь к другим моим CTE позже. Однако у меня возникли проблемы с выяснением наилучшего способа получить временной диапазон для двух событий, а затем, после того, как я go буду агрегировать это, чтобы получить средний расчет - любая помощь здесь была бы замечательной!
пока у меня есть:
CTE as
select *, row_number()over(partition by ID order by DATE) as id_seq
from TABLE
where DATE between '2020-02-02' and '2020-07-31'
)
select o1.ID, o1.DATE, datediff(day, o1.DATE, o2.DATE) as date_diff
from id_seq o1 join id_seq o2 on (o1.ID=o2.ID and o2.ID =o1.ID-1)
group by o1.ID,o1.DATE, datediff(day, o1.DATE, o2.DATE)
Я делаю несколько датировок (день, дата, дата, дата) и т. д.?
The output of the CTE is:
ID DATE SEQUENCE
74971997 2/9/2020 1
74971997 2/11/2020 2
74971997 2/16/2020 3
74971998 2/9/2020 1
74971998 7/6/2020 2
74971998 7/12/2020 3
Окончательный результат, который я пытаюсь сделать get - это среднее количество дней между каждой последовательностью в CTE, чтобы затем вычислить среднее количество дней и количество идентификаторов в каждой последовательности.
COUNT IDs AVERAGE DAYS AFTER FIRST VISIT AVERAGE DAYS AFTER 2nd VISIT AVERAGE DAYS AFTER 3rd VISIT
# #