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

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

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

思路: 求second_buy_date的核心重点是:min(date > min(date))

我们使用订单分析四中的结果,求出最小的date,然后联立 order_info 表,通过 t1.date > t2.first_buy_datemin(t1.date) 求出第二小date

完整代码:

select t1.user_id, t2.first_buy_date, min(t1.date) as second_buy_date, t2.cnt
from order_info t1, (select user_id, min(date) as first_buy_date, count(user_id) as cnt
											from order_info
											where status = 'completed'
											and date > '2025-10-15'
											and product_name in ('C++', 'Java', 'Python')
											group by user_id
											having count(user_id) > 1) as t2
where t1.user_id = t2.user_id
and t1.date > t2.first_buy_date
and t1.status = 'completed'
and t1.date > '2025-10-15'
and t1.product_name in ('C++', 'Java', 'Python')
group by user_id
order by user_id
SQL练习 文章被收录于专栏

已完成牛客的SQL练习。接下来是算法的练习

全部评论
min(date > min(date)) 这个思路很妙
点赞 回复 分享
发布于 2022-11-17 22:59 浙江

相关推荐

点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
10 收藏 评论
分享
牛客网
牛客企业服务