#sql #hana
Вопрос:
Я пытаюсь показать только первое появление действия, если это действие происходит несколько раз подряд.
Таким образом, в приведенном ниже сценарии, если действие B
происходит 3 раза подряд, даже если это происходит в разное время, я хочу выбрать только первое событие. Если это произойдет снова ПОСЛЕ другого действия, я также хочу сохранить это.
Я хочу игнорировать строки 3 и 4
ряд | КЕЙСИ | Активность | ВРЕМЯ ПРОВЕДЕНИЯ МЕРОПРИЯТИЯ |
---|---|---|---|
1 | 1 | A | 01.01.2021 12:00:00 |
2 | 1 | B | 01.01.2021 12:05:00 |
3 | 1 | B | 01.01.2021 12:06:00 |
4 | 1 | B | 02.01.2021 13:00:00 |
5 | 1 | C | 02.01.2021 13:10:00 |
6 | 1 | B | 03.01.2021 12:00:00 |
Ответ №1:
Воспользуйся lag()
:
select t.*
from (select t.*,
lag(activity) over (partition by casekey order by eventtime) as prev_activity
from t
) t
where prev_activity is null or prev_activity <> activity;