题解 | #牛客的课程订单分析(五)#

牛客的课程订单分析(五)

https://www.nowcoder.com/practice/348afda488554ceb922efd2f3effc427

with 
order_cnt as (
select user_id,date,
       count(*)over(partition by user_id) cnt, -- 开窗,用户购买数
       row_number()over(partition by user_id order by date) rn -- 开窗,用户购买日期降序,序号
from order_info
where date>'2025-10-15' and -- 谓词下推,先过滤掉无用数据
      status='completed' and 
      product_name in ('C++','Java','Python')     
)

select user_id,
       date_format(sum(if(rn=1,date,null)),'%Y-%m-%d') first_buy_date, -- 首次购买
       date_format(sum(if(rn=2,date,null)),'%Y-%m-%d') second_buy_date, -- 第二次购买
       cnt
from order_cnt
where cnt>=2 -- 下单2个以及2个以上
group by user_id,cnt;

全部评论

相关推荐

10-17 17:14
门头沟学院 C++
牛客410039819号:北京地区大多是919和927,这两场挂太多人了
投递华为等公司10个岗位
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务