我有一个包含列事件的表。它有IN和OUT等数据。
现在我需要创建两列,其中第一个IN的时间用于特定ID,最后一个OUT用于相同的ID。
我需要使用具有超前和滞后的窗口函数分区。
我该怎么做?
任何帮助都会很棒!
我必须在HIVE中这样做!
答案 0 :(得分:0)
我假设您还有一些日期列(我们称之为dt
)
要获得所有ID的第一个IN和最后一个OUT,您需要执行以下操作:
select
id,
min(case when event='IN' then dt end) first_in,
max(case when event='OUT' then dt end) last_out
from table
group by id