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

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

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

1、题目要求查出在

限制条件:(1)2025-10-15以后,(2)产品在('C++','Python','Java')中(3)状态为成功(4)同一个用户购买两次及以上 的

指标:

(1)用户id(2)前两次购买的日期(3)总购买次数;

2、前三个条件好写,统一放到where筛选语句后

where date>'2025-10-15'
and status='completed'
and product_name in ('C++','Python','Java')

3、使用窗口函数,同时计算出各用户的购买次数和购买行为的先后顺序,这里排序用的是row_number(),不重复排序,因为可能存在同一天买多件产品的情况。

row_number()over(partition by user_id order by date) rk,
count(*)over(partition by user_id) cnt

新建表c作为查询对象,表c包含了有用户id,日期,购买序号,总次数字段的满足前三个条件的所有购买记录

4、对表c进行查询,筛选条件为总次数大于2,购买序号为1,2的信息

5、最后根据要求排序

完整代码如下:

select user_id,min(date),max(date),cnt
from
(
    select user_id,date,
    row_number()over(partition by user_id order by date) rk,
    count(*)over(partition by user_id) cnt
    from order_info
    where date>'2025-10-15'
    and status='completed'
    and product_name in ('C++','Python','Java')
    ) c
where c.cnt>=2
and rk in('1','2')
group by user_id
order by user_id
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
评论
3
收藏
分享
牛客网
牛客企业服务