【Mysql】sql语句查询在2025-10-15以后,如果有一个用。。。

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

http://www.nowcoder.com/questionTerminal/c93d2079282f4943a3771ca6fd081c23

题目描述:sql语句查询在2025-10-15以后,如果有一个用户下单2个以及2个以上状态为购买成功的C++课程或Java课程或Python课程,那么输出这个用户的user_id,以及满足前面条件的第一次购买成功的C++课程或Java课程或Python课程的日期first_buy_date,以及购买成功的C++课程或Java课程或Python课程的次数cnt,并且输出结果按照user_id升序排序。
个人思路:没什么好说的,按照条件一个一个来就行。记着where子句后面不能加聚合函数。

select user_id, 
       min(date) as first_buy_date,
       count(*) as cnt

from order_info

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

group by user_id
having count(user_id)>1
order by user_id
牛客题霸-SQL篇【Mysql】 文章被收录于专栏

少壮不努力,老大勤刷题

全部评论
group by user_id了不是就只能select user_id吗,就像第三题一样,为什么这里能直接select min(date)和count(*)呢
点赞 回复 分享
发布于 2021-05-05 22:47
datediff(date,'2025-10-15')>0,这个我看网上说第二个时间减第一个时间啊,在10-15之后不应该是<0吗,是我哪里理解错了
点赞 回复 分享
发布于 11-09 18:58 安徽

相关推荐

Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务