У меня есть набор данных, как показано на изображении ниже
Когда значение is_session_change равно true, я заполняю новое значение для сеанса столбца, и я хочу перенести это значение сеанса до следующего ИСТИННОГО значения is_session_change столбца.Например, изображение ниже -
Столбец Ожидаемая_сессия - это ожидаемое значение.Пожалуйста, дайте мне знать, если кто-нибудь может помочь!Заранее спасибо.На самом деле я обрабатываю данные ежечасно, и для определенного прогона я обрабатываю данные текущего часа плюс данные последнего часа, поэтому данные последнего часа будут иметь правильно прикрепленные идентификаторы сеансов, теперь я пытаюсь расширить эти идентификаторы сеансов для подходящих записей в текущем часе,Если запись не может быть расширена, я генерирую новый идентификатор сеанса.
Я попробовал следующий подход, который заполнил значения в столбце сеанса -
select *,case when (session_id != '-1') then session_id
when (new_session = true) then getSessionId()
when (new_session =false AND session_id = '-1') then LAG(session_id) OVER (PARTITION BY uniquevisitor ORDER BY ts)
else '-' END as abc
from mktg_web.web_session_final
order by uniquevisitor