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

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

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

select a.user_id, min(a.date) first_buy_date, max(a.date) second_buy_date, b.cnt from
(select date, user_id,row_number() over(partition by user_id order by date) rank_
from order_info
where datediff(date,'2025-10-15')>0
and product_name in ('C++','Java','Python')
and status='completed') a
right join
(select user_id, count(*) cnt
from order_info
where datediff(date,'2025-10-15')>0
and product_name in ('C++','Java','Python')
and status='completed'
group by user_id
having count(*)>1) b
on a.user_id=b.user_id
where a.rank_=1 or a.rank_=2
group by a.user_id
order by a.user_id
  • 使用窗口函数得到排名
  • 使用聚合函数筛选符合条件的用户id和下单次数
  • 连接两个表 注意要以第二个表为连接标准

全部评论

相关推荐

03-10 11:23
门头沟学院 Java
鹿LF:计算机面试就跟数学题一样,没什么实际价值,但只能这么筛选,本质是考察你的努力,智力和学习能力
点赞 评论 收藏
分享
04-03 22:41
兰州大学 C++
老六f:有时候是HR发错了,我之前投的百度的后端开发,他给我发的算法工程师,但是确实面的就是百度开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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