Hive 如何获取值大于该组的最小值加上常数的行?

Hive 如何获取值大于该组的最小值加上常数的行?,hive,hiveql,Hive,Hiveql,我有一些页面视图数据,其中每一行都是一个页面视图,我希望从每个用户的第二次(以及任何后续)访问中查找页面视图;为了简单起见,我将使用一整天作为会话长度。我想这个查询应该是这样的 从页面视图中选择日期时间、url,其中日期时间>日期添加(分钟(日期时间),1) 当然,min函数实际上并不存在,我需要每个访问者的min date\u time,而不是整个表 我看了一些其他的问题,它看起来像窗口和分析功能可能是正确的使用,但文档是稀疏的,我找不到一个单一的例子如何做到这一点 下面的查询 SELECT

我有一些页面视图数据,其中每一行都是一个页面视图,我希望从每个用户的第二次(以及任何后续)访问中查找页面视图;为了简单起见,我将使用一整天作为会话长度。我想这个查询应该是这样的

从页面视图中选择日期时间、url,其中日期时间>日期添加(分钟(日期时间),1)

当然,min函数实际上并不存在,我需要每个访问者的min date\u time,而不是整个表

我看了一些其他的问题,它看起来像窗口和分析功能可能是正确的使用,但文档是稀疏的,我找不到一个单一的例子如何做到这一点

下面的查询

SELECT user_id, date_time, rank() OVER(PARTITION BY user_id ORDER BY date_time) FROM pageviews
返回按时间排列的页面浏览量列表,因此技术上我可以为每个用户id选择等于1的页面浏览量,但我不知道如何做到这一点。似乎不可能在WHERE中使用OVER子句

样本数据:

date_time                url                   user_id 
12-21-2015 00:00:07      www.mywebsite.com          1234
12-13-2015 14:12:02      www.mywebsite.com          5678
12-16-2015 23:24:25      www.mywebsite.com          5678
期望结果

user_id   
5678     
(我至少需要用户id;任何额外的信息,例如第二次访问的日期时间,都可以。)

使用子查询:

 FROM  ( SELECT 
     user_id, 
     date_time,  
     rank()   OVER(PARTITION BY user_id ORDER BY date_time) as rnk 
 FROM pageviews ) t  select user_id where rnk > 1;