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

相关推荐

不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
看到这个内容真是闹麻了。。。。。。现在有了AI以后很多人面试都会作弊吗?&nbsp;那对老老实实面试的人岂不是不公平....
程序员牛肉:公平那是对小孩子讲的童话故事,成年人的世界只有能不能接受失败的后果。 你要是能接受面试作弊被发现之后多家公司联合永久拉黑的后果,你就搞。
点赞 评论 收藏
分享
Twilight_m...:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
05-12 22:16
已编辑
北京邮电大学 研发工程师
牛客30236098...:0offer+1 滴滴都不给我面 佬没投鹅吗,鹅应该很喜欢北邮吧
投递美团等公司10个岗位
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
点赞 评论 收藏
分享
评论
6
1
分享

创作者周榜

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