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

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

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

select
    user_id,first_buy_date,second_buy_date,cnt
from
    (select
         user_id,
         min(date) over(partition by user_id) as first_buy_date,
         lead(date,1,0) over(partition by user_id order by date) as second_buy_date,
         count(*) over(partition by user_id) as cnt,
         date
    from order_info
    where date>='2025-10-16'
      and status='completed'
      and product_name in('C++','Java','Python')
    ) a
where a.cnt>=2 and date=first_buy_date
order by a.user_id ;

全部评论
内表使用min()over()确定第一次购买日期,外表通过date=min(date),确保筛选到的日期为第一次购买日期
点赞 回复 分享
发布于 03-05 23:42 安徽

相关推荐

09-18 20:41
阿里巴巴_后端
要个offer怎么这...:哈哈哈哈哈哈,我也拿了0x10000000个offer,秋招温啦啦啦,好开心
我的秋招日记
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务