183.Hive(五):面试题解析:连续问题、分组问题、间隔分组问题、打折日期交叉问题,同时在线问题

目录

1.连续问题

2.分组问题

3.间隔连续问题

4.打折日期交叉问题

5.同时在线问题


1.连续问题

如下数据为蚂蚁森林中用户领取的减少碳排放量,找出连续 3 天及以上减少碳排放量在 100 以上的用户

 思路:

  • 先查出每个人单日减少的碳排放量>100的
  • 将用户每日减少的碳排放量进行开窗排名
  • 等差数列法思路:日期1,2,3,4。我们在旁边再来一个2,3,4,5。每一个日期和旁边的值相差1。如果旁边的值是2,3,5,6。则表示前两个日期是连续,第三个开始不连续。
#4.当数量>3,表示连续3天排放大于100
select id,flag,count(*) ct 
from
    #3.等差数列:将每天的日期值-排序值。如果连续三天排放大于100,那么该用户每天都有flag,且值每天相同
    (select id,dt,lowcarbon,date_sub(dt,rk) flag
    from 
        #2.开窗,根据日期排序,将每天减排量大于100的人的数据排列下来。日期增加一天,排序+1
        (select id,dt,lowcarbon,rank() over (partition by id order by dt) rk
        from 
            #1.找出一天减排量>100的人,有几天会查出几条数据
            (select id,dt,sum(lowcarbon) lowcarbon from test1 grou
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏哥哥啊Aaaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值