У меня есть столбец event
в таблице Hive
, как показано ниже.
Event
Sent
Sent
Open
Open
Click
Sent
Open
Signup
Sent
Open
Click
Теперь я хочу создать новый столбец на основе значений в столбце event
с помощью оператора case.
Я хочу, чтобы в столбце событий было signup
. Я хочу, чтобы столбец Previous_event
точно соответствовал значению preceding
.
Я пробовал, как показано ниже.
select event,
case when event = 'Sent' then 'No_event'
when event = 'Open' then 'Sent'
when event = 'Click' then 'Open'
else -1
end as Previous_event
from table;
Result
Sent No_event
Sent No_event
Open Sent
Open Sent
Click Open
Sent No_event
Open Sent
Signup -1
Sent No_event
Open Sent
Click Open
Expected result
Sent No_event
Sent No_event
Open Sent
Open Sent
Click Open
Sent No_event
Open Sent
Signup Open
Sent No_event
Open Sent
Click Open
Как мне добиться того, чего я хочу?