Hive综合案例练习(中级)第二题:查询至少连续三天下单的用户
创始人
2024-06-03 16:13:03
0

查询至少连续三天下单的用户

题目需求

查询订单信息表(order_info)中最少连续3天下单的用户id,期望结果如下:

user_id
101

题目解析

  • 第一步:用户一天可能存在多次下单的情况,所以需要对用户进行去重

去重方法如下:

--方法一:使用distinct
selectdistinctuser_id,create_date
from order_info;--方法二:使用group by
selectuser_id,create_date
from order_info
group by user_id, create_date;--方法二:使用窗口函數
selectuser_id,create_date
from
(selectuser_id,create_date,row_number() over (partition by user_id,create_date) rnfrom order_info
)t1
where rn=1;
  • 第二步:具体见各个方案。

代码实现

  • 方案一

    selectdistinct user_id
    from
    (selectuser_idfrom(selectuser_id,create_date,date_sub(create_date, row_number() over (partition by user_id order by create_date)) difffrom(selectuser_id,create_datefrom order_infogroup by user_id, create_date)t1)t2group by user_idhaving count(diff) >= 3
    )t3
    
  • 方案二

    selectdistinct user_id
    from
    (selectuser_id,datediff(lead2, create_date) difffrom(selectuser_id,create_date,lead(create_date, 2, '9999-12-31') over (partition by user_id order by create_date) lead2from(selectuser_id,create_datefrom order_infogroup by user_id, create_date)t1)t2
    )t3
    where diff=2;
    
  • 方案三

    selectdistinct user_id
    from
    (selectuser_id,ts,count(*) over (partition by user_id order by ts range between 86400 preceding and 86400 following) cntfrom(selectuser_id,unix_timestamp(create_date, 'yyyy-MM-dd') tsfrom(selectuser_id,create_datefrom order_infogroup by user_id, create_date)t1)t2
    )t3
    where cnt=3;
    

相关内容

热门资讯

阿索卡·塔诺为什么没有在星球大... 阿索卡·塔诺为什么没有在星球大战正传出现?阿索卡没有听说过,,是什么鬼阿索卡是阿纳金年轻时收的徒弟 ...
河北公布第二批美丽河湖名单,1... 转自:河北新闻网河北公布第二批美丽河湖名单,15个河湖入选全省美丽河湖总数达26个河北日报讯(记者马...
热血英豪灵异少女带幻影水晶 热血英豪灵异少女带幻影水晶我看见有人用灵异带幻影能幻影出灵异的ZXC,怎么弄的? 是不是他改了...
潍柴:自主锻造“国产引擎” 加... 历时10年,投入1.2亿元,接连突破甲醇发动机抗机油乳化技术、低温冷启动技术、控早燃爆震技术等多项行...
西班牙多地将出现强降雨等极端天... 来源:央视新闻客户端当地时间7月10日,西班牙国家气象局警告称,当地时间11日起,该国多个地区将出现...
来中国前,黄仁勋先去见了特朗普   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! 【文/观察者网 柳...
警惕虚假宣传诱导网络贷款的风险 转自:中国银行保险报网□本报记者 仇兆燕7月10日,金融监管总局金融消费者权益保护局发布风险提示,提...
比特币突破11.7万美元 续创... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...
翼年代记漫画最近章节都说什么了... 翼年代记漫画最近章节都说什么了?OVA《东京默示录》是漫画107话到135话的内容,漫画要从136话...
中国天瑞水泥遭Yu Kuo C... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...