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

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

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

新增限制条件

  • 第二次购买成功的C++课程或Java课程或Python课程的日期second_buy_date

参考了友友的答案,where筛选max min 真的很妙
但不太理解为什么要group by...希望有大神解释一下 TVT

select a.user_id,
min(date) as first_buy_date,
max(date) as second_buy_date,
a.cnt
from
(select user_id , date, row_number()over(partition by user_id order by date asc) r_number ,
count(id)over(partition by user_id)cnt
from order_info
where date > '2025-10-15'
and product_name in ('C++','Java','Python')
and status = 'completed')a
where a.r_number <= 2
and a.cnt >= 2
group by a.user_id , a.cnt
order by a.user_id asc;
SQL 文章被收录于专栏

SQL

全部评论
因为min(),max()是聚合函数,其作用是将多行数据按条件转成一行数据。如果不分组的话,你这里就一条结果
1 回复 分享
发布于 2021-04-16 16:50
为什么可以用max?如果有购买三次的,max就是第三次的购买记录了。题目要求第一第二次。这个可以用的吗
1 回复 分享
发布于 2021-06-11 17:01
如果没有group by就会出现,同一个user_id第一次购买一条数据,第二次购买一次数据,不能把两次购买放在一条数据里面
点赞 回复 分享
发布于 2022-05-22 17:32

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
6 1 评论
分享
牛客网
牛客企业服务