SQL连续

连续问题是实际数据开发中比较常见的场景。例如,统计用户连续活跃天数等SQL如何解决连续问题?本文主要介绍连续性问题,重点以常见的连续活跃场景为例,抽象出通用的连续问题解决方案。连续问题主要分为静态连续问题和动态连续问题两类本文尝试独辟蹊径,强调通过灵活的、发散性的数据处理思维,就可以用最基础的语法,解决复杂的数据场景。文章涉及的SQL语句使用了Hive SQL的基础语法和部分高级语法特性。
摘要由CSDN通过智能技术生成




1、连续概述


连续问题是实际数据开发中比较常见的场景。例如,连续活跃天数用户统计等

SQL如何解决连续问题?本文主要介绍连续性问题,重点以常见的连续活跃场景为例,抽象出通用的连续问题解决方案。连续问题主要分为静态连续问题和动态连续问题两类

本文尝试独辟蹊径,强调通过灵活的、发散性的数据处理思维,就可以用最基础的语法,解决复杂的数据场景。文章涉及的SQL语句使用了Hive SQL的基础语法和部分高级语法特性

相关函数参考MaxCompute:https://help.aliyun.com/zh/maxcompute/user-guide/overview/?spm=a2c4g.11186623.0.0.738048b99fbTqb

2、SQL连续及应用


接下来,我们通过连续活跃场景案例,详细介绍SQL连续及应用

场景描述:现有用户访问日志表visit_log,每行数据表示一条用户访问日志

with visit_log as (
    select stack (
        6,
        '2023-11-01', '101', '湖北', '武汉', 'Android',
        '2023-11-01', '102', '湖南', '长沙', 'IOS',
        '2023-11-01', '103', '四川', '成都', 'Windows',
        '2023-11-02', '101', '湖北', '孝感', 'Mac',
        '2023-11-02', '102', '湖南', '邵阳', 'Android',
        '2023-11-03', '101', '湖北', '武汉', 'IOS'
    ) 
    -- 字段:日期,用户,省份,城市,设备类型
    as (dt, user_id, province, city, device_type)
)
select * from visit_log

2.1、静态连续


静态连续活跃统计问题:

需求描述1:统计连续访问天数大于等于3天的用户

分析:上述问题在分析连续性时,获取连续性的结果以超过固定阈值为准,此处归类为连续活跃大于N天阈值的普通(静态)连续活跃场景统计

SQL实现如下:

方式1:基于相邻日期差实现(lag/lead版)

-- 基于lag/lead
  • 26
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值