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;
    

相关内容

热门资讯

甘肃一幼儿园违规使用添加剂致部... 转自:央视记者今天(3日)从甘肃省天水市麦积区了解到:7月1日,麦积区市场监管局和公安分局接群众反映...
“空中吊车”首战大瑶山 无人机... 转自:新华财经图为南方电网广西来宾供电局的无人机飞手正在调试无人机近日,在苍翠险峻的大瑶山自然保护区...
甘肃一幼儿园违规使用添加剂致部... 转自:天津日报记者今天(3日)从甘肃省天水市麦积区了解到:7月1日,麦积区市场监管局和公安分局接群众...
邮储银行武强县支行开展联建共建... 转自:衡水日报为深入学习贯彻党的二十大精神、全面落实新时代党的建设总要求,7月1日,邮储银行武强县支...
警方否认拘留K1373次列车砸... 【#警方否认拘留K1373次列车砸窗乘客# 仅对其批评教育后放行】#目击者讲述K1373次列车脱线乘...
隆林:递进式气象服务筑牢汛期防... 6月30日至7月1日,广西壮族自治区百色市隆林各族自治县出现入汛以来最强降雨,全县13个站点出现大暴...
万荣:气象服务赋能香菇产业从“... 6月26日,山西省运城市万荣县气象局联合县农业农村局深入南张乡香菇种植基地,开展直通式气象服务。香菇...
天津征求意见:到2027年力争... 天津市科技局对《天津市科技金融助力新质生产力发展行动方案(2025-2027年)》公开征求意见。其中...
长三角一体化发展将推进医疗检查... 转自:上观新闻近日,由上海市卫生健康委员会、江苏省卫生健康委员会、浙江省卫生健康委员会、安徽省卫生健...
“立浙江,塑世界”!“铸脉:浙... 转自:上观新闻“这不仅是一场展览,更是一座丰碑,是浙江百年雕塑与中国雕塑百年同频共振、互为印证、相互...