У меня есть таблица t1
с полями activity_name
(целое число) и status_change_dttm
(дата):
activity_name status_change_dttm
------1------ -------null-------
------1------ -------null-------
------1------ 18FEB2019:19:16:13
------2------ -------null-------
------3------ -------null-------
------3------ -------null-------
------3------ -------null-------
------4------ -------null-------
------5------ 03FEB2019:14:38:52
------5------ 04FEB2019:18:30:52
------5------ 14FEB2019:12:00:12
Результат должен выглядеть следующим образом:
activity_name status_change_dttm
------1------ 18FEB2019:19:16:13
------2------ -------null-------
------3------ -------null-------
------4------ -------null-------
------5------ 03FEB2019:14:38:52
------5------ 04FEB2019:18:30:52
------5------ 14FEB2019:12:00:12
Так что, если у меня есть строки с одинаковыми activity_name
и нулевыми значениями в status_change_dttm
, а следующее действие не равно предыдущему, мне нужно объединить эти строки в одну строку. Если у меня есть строки с нулевыми значениями в status_change_dttm
, а следующая строка с такими же activity_name
и status_change_dttm
не равна нулю, мне нужно удалить только строки с нулевыми значениями.
Заключить:
1) IF NULL - NULL - DATE - next activity -> drop nulls
2) IF NULL - NULL - NULL - next activity -> merge into one row
3) IF DATE - DATE - DATE - next activity -> no changes
4) IF one NULL - next activity -> no changes
5) IF one DATE - next activity -> no changes
Я полагаю, что ключ - это функции задержки / опережения, но я не понимаю общей концепции. Спасибо.