查询用户出现在表中后的前 48 小时活动 (HiveQL / SQL)
Posted
技术标签:
【中文标题】查询用户出现在表中后的前 48 小时活动 (HiveQL / SQL)【英文标题】:Querying the first 48 hours of activity after a user appears in a table (HiveQL / SQL) 【发布时间】:2020-06-06 01:50:10 【问题描述】:我正在使用 Hive 表,该表表示网站上的流量并包含 user_id
、day
和 event
等列。我还有一个单独的user_id
s 列表,我正在尝试为此 Hive 表编写一个查询,该查询返回与该列表中每个用户的前 48 小时活动相对应的所有行(对于每个用户,有表中带有event = SIGNUP
的初始行)。
对于如何编写此查询,我感到有些困惑。有没有人指点一下?
谢谢!
【问题讨论】:
请提供样本数据和所需结果。 【参考方案1】:您可以使用窗口函数计算每个user_id
的第一个日期:
select t.*
from (select t.*,
min(day) over (partition by user_id) as min_day
from t
where t.user_id in ( . . . ) -- your list here
) t
where day <= date_add(min_day, 2)
【讨论】:
以上是关于查询用户出现在表中后的前 48 小时活动 (HiveQL / SQL)的主要内容,如果未能解决你的问题,请参考以下文章