电商数仓-最近7日内连续3日下单用户数

方案一:

select
    count(distinct(user_id))
from
(
    select
        user_id,
        datediff(lead2,dt)diff
    from
    (
        select
        user_id,
        dt,
        lead(dt,2,'9999-12-31') over (partition by user_id order by dt)lead2
        from dws_trade_user_order_1d
        where dt>=date_sub('2020-06-14',6)
    )t1
)t2
where diff=2;

方案二:

select
    count(distinct(user_id))
from
(
    select
        user_id,
        diff,
        count(*) cnt
    from
    (
        select
            user_id,
            date_sub(date_id,rk) diff
        from
        (
            select
                user_id,
                date_id,
                rank() over (partition by user_id order by date_id) rk
            from
            (
                select
                    user_id,
                    date_id
                from dwd_trade_order_detail_inc
                where dt>=date_sub('2020-06-14',6)
                group by user_id, date_id
            )t1
        )t2
    )t3
    group by user_id, diff
)t4
where cnt>=3;

 方案三:

select
    count(*)
from
(
        select
        user_id,
        sum(num) s
    from
    (
        select
            user_id,
            case date_id
                when '2020-06-14' then 1000000
                when '2020-06-13' then 100000
                when '2020-06-12' then 10000
                when '2020-06-11' then 1000
                when '2020-06-10' then 100
                when '2020-06-09' then 10
                when '2020-06-08' then 1
            end num
        from
        (
            select
                user_id,
                date_id
            from dwd_trade_order_detail_inc
            where dt>=date_sub('2020-06-14',6)
            group by user_id, date_id
        )t1
    )t2
    group by user_id
)t3
where cast(s as string)like '%111%';

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值