美文网首页
Hive SQL:提取一段时间内活跃天数少于3天的用户

Hive SQL:提取一段时间内活跃天数少于3天的用户

作者: cef802fb1136 | 来源:发表于2020-04-17 17:31 被阅读0次
  • 最近业务方打算做一个用户唤醒的活动,准备以现金红包的方式进行拉活。其中提了一份数据需求:需要一份最近15天内,活跃天数少于3天的用户,打算将这批用户唤醒。

  • 拿到需求后简单构思,首先是在半个月内有活跃过,但是需要活跃天数少于3天的,可以是不连续的3天。

  • 观察我们的hive数据,有一份活跃用户表,因为imei、idfv在客户端采集的过程中存在一定的问题,表中主要是按照手机号来统计标识,且表是以dt作为分区的

phone dt
1300000000 20200401
1300000001 20200401
1300000002 20200401
1300000000 20200402
1300000001 20200402
1300000003 20200402
1300000000 20200403
1300000007 20200403
1300000009 20200403
  • 那么意思就是,只要这个用户的标识出现在15个分区中就行了,SQL表现就是count(distinct dt),同时需要少于3天的用户,SQL表现即having count(distinct dt ) < 3

那么思路有了之后就是代码如何实现了

核心部分伪代码:

SELECT 
      phone,
      count(DISTINCT dt) AS active_count
FROM bigdata.tables
WHERE dt BETWEEN '20200401' AND '20200415'
GROUP BY phone
HAVING count(DISTINCT dt) <3

其实也就是把统计的指标变成了我们的分区,有思路之后其实SQL不难写

相关文章

网友评论

      本文标题:Hive SQL:提取一段时间内活跃天数少于3天的用户

      本文链接:https://www.haomeiwen.com/subject/sliyvhtx.html