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

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

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-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务