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

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

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

select i.user_id, min(i.date) first_buy_date, b.date second_buy_date, count(*) cnt
from order_info i
inner join (
    select user_id, date, row_number()over(partition by user_id order by date) a
    from order_info
    where datediff(date, '2025-10-15') > 0 and product_name in ('C++', 'Java', 'Python') and status = 'completed' 
    group by user_id, date
) b
on i.user_id = b.user_id
where datediff(i.date, '2025-10-15') > 0 and product_name in ('C++', 'Java', 'Python') and status = 'completed' and b.a = 2
group by i.user_id, second_buy_date
having cnt >= 2
order by i.user_id

因为题目中已经有order_info表了定为i表,i表是代表订单为2个以及以上的表,再定义一个b表,b表代表第二次购买的用户以及日期,通过窗口函数判断第二次的日期并通过select展示出来,最后结合条件可以得到最终结果

全部评论

相关推荐

友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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