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

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

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和下单次数
  • 连接两个表 注意要以第二个表为连接标准

全部评论

相关推荐

08-28 20:36
门头沟学院 Java
点赞 评论 收藏
分享
09-21 23:16
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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