Datediff после CTE rownum (), чтобы найти дату и частоту всей последовательности? (SQL) - PullRequest
0 голосов
/ 07 августа 2020

Я пытаюсь найти частоту в днях, с которой (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
#                 #
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...