我有一个有列事件的表。它有像IN和OUT这样的数据。现在我需要创建两个列,其中第一个IN的时间用于特定ID,最后一个OUT的时间用于同一ID。我需要使用分区窗口功能与领先和滞后。我该怎么做?任何帮助将是伟大的!我必须在Hive里做这个!
yzckvree1#
我假设你也有一些日期列(让我们称之为dt)。要获取所有ID的第一个IN和最后一个OUT,您需要执行以下操作:
dt
select id, min(case when event='IN' then dt end) first_in, max(case when event='OUT' then dt end) last_outfrom tablegroup by id
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
1条答案
按热度按时间yzckvree1#
我假设你也有一些日期列(让我们称之为
dt
)。要获取所有ID的第一个IN和最后一个OUT,您需要执行以下操作: