Hive sql 常见面试题-销售订单首购和次购分析

该篇文章描述了如何通过SQL查询从三个关联表中(sku_info,order_info,order_detail)找出用户在购买xiaomi10、apple12和小米13手机时,如果有成功下单两个或以上的情况,包括用户ID、首次购买日期和最后购买日期,以及购买成功的次数。
摘要由CSDN通过智能技术生成

1. 题目需求

通过商品信息表(sku_info)订单信息表(order_info)订单明细表(order_detail)分析如果有一个用户成功下单两个及两个以上的购买成功的手机订单(购买商品为xiaomi 10,apple 12,小米13)那么输出这个用户的id及第一次成功购买手机的日期和第二次成功购买手机的日期,以及购买手机成功的次数。

结果如下:
在这里插入图片描述

2. 需要用到的表

订单信息表:order_info
在这里插入图片描述

订单明细表:order_detail
在这里插入图片描述

商品信息表:sku_info
在这里插入图片描述

3. 查询sql

WITH tmp as(

      SELECT

          user_id,

          od.create_date,

          name

      from order_detail od 

      LEFT JOIN sku_info si

      on od.sku_id = si.sku_id

      LEFT JOIN order_info oi

      on od.order_id = oi.order_id

      where name in ('xiaomi 13','xiaomi 10','apple 12')

)

SELECT

        user_id,first_date,last_date,

        count(1) cn

from(

      SELECT

          user_id,

          max(create_date) over(PARTITION by user_id) last_date,

          min(create_date) over(PARTITION by user_id) first_date

      from tmp

)t1 group by user_id,first_date,last_date
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值