У меня есть таблица ниже:
Я пишу код ниже, чтобы получить следующую метку времени, используя T5, а затем рассчитать продолжительность. Однако для последней записи, где T5 и T6 равны, я хочу заполнить среднее значение предыдущих длительностей. Однако я получаю ошибку при этом. Что я делаю не так?
SELECT
T1,
T2,
T3,
T4,
T5,
T6,
case
when T5=T6 then sum(date_diff('second',T5,T6)) over (partition by T1, T2, T3,
date(T5)) / (count(DISTINCT T6)over (partition by T1, T2, T3, date(T6) ))
else date_diff('second',T5,T6) end as duration
from
(
SELECT T1,
T2,
T3,
T4,
T5,
lead(T5, 1, T5) over (partition by T1, T2, T3, date(T5) order by T5) as T6
FROM TABLE_X
)