如何找到特定列的第一个IN和最后一个OUT?

时间:2014-08-26 07:14:47

标签: hive partition-by

我有一个包含列事件的表。它有IN和OUT等数据。

现在我需要创建两列,其中第一个IN的时间用于特定ID,最后一个OUT用于相同的ID。

我需要使用具有超前和滞后的窗口函数分区。

我该怎么做?

任何帮助都会很棒!

我必须在HIVE中这样做!

1 个答案:

答案 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