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

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

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

select 
t.user_id
,min(t.date) as first_buy_date
,max(t.date) as second_buy_date
,t.cnt
from 
(
select 
user_id
,date
,rank() over(partition by user_id order by date) r_no
,count(*) over(partition by user_id) cnt
from order_info
where user_id in 
(
    select user_id 
    from order_info a
    where date>'2025-10-15'
    and product_name in ('C++','Java','Python')
    and status='completed'
    group by user_id 
    having count(user_id)>=2
)
and product_name in ('C++','Java','Python')
and status='completed'
and date>'2025-10-15'
) t
where t.r_no<=2 and t.cnt>=2
group by t.user_id
order by t.user_id

思路:目前题目里写的行数最多的代码,中间套用79#牛客的课程订单分析(三)# 的代码,然后对日期和个人次数用了窗口函数,然后作为一个子查询嵌套到外部查询中,在外部查询的where条件中,选取的日期为前俩天,所以t.r_no<=2,既然要选俩个日期,所以至少需要俩行记录,即t.cnt>=2,然后分组排序就好。

sql题 文章被收录于专栏

牛客网里面的sql题,把答案和思路写下来

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 12:10
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 golang
迷失西雅图:别给,纯kpi,别问我为什么知道
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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