Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 如何查找特定列的先进先出?_Hive_Partition By - Fatal编程技术网

Hive 如何查找特定列的先进先出?

Hive 如何查找特定列的先进先出?,hive,partition-by,Hive,Partition By,我有一个具有列事件的表。它有输入和输出之类的数据 现在我需要创建两个列,其中第一个列用于特定ID,最后一个列用于相同ID 我需要使用带超前和滞后的按窗口划分函数 我该怎么做 任何帮助都会很好 我必须在蜂箱里做这件事 我假设您也有一些日期列(我们称之为dt)。 要获得所有ID的先进先出,您需要执行以下操作: select id, min(case when event='IN' then dt end) first_in, max(case when event='OUT' the

我有一个具有列事件的表。它有输入和输出之类的数据

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

我需要使用带超前和滞后的按窗口划分函数

我该怎么做

任何帮助都会很好


我必须在蜂箱里做这件事

我假设您也有一些日期列(我们称之为
dt
)。
要获得所有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

你好非常感谢你的意见。。如果我使用此查询,将有空值。。因为并非所有id都有输入和输出值。。您能告诉我如何删除这些空值吗?您可以使用
coalesce
将非空值放在那里:
coalesce(max(case…,'something')
或删除
having
中的那些行:
having max(case…)不为空
,因为某些原因,它不起作用。。。我会给你一个场景。。我需要为某个特定ID找到第一个输入,为同一个会话找到最后一个输出,而不是一天中的最后一个。。这有意义吗?