美文网首页
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