题解 | #牛客的课程订单分析(三)#
牛客的课程订单分析(三)
http://www.nowcoder.com/practice/4ae8cff2505f4d7cb68fb0ec7cf80c57
写完梳理下解题思路
首先这题和上一个题是差不多的,但是查询的是所有数据无法直接用group by
因此我的第一想法就是这样用连接或者子查询什么的 (其实我的第一反应是这题重复了果断复制提交。。。。。然后看答案)
inner join (select user_id from order_info
where date > '2025-10-15'
and product_name in ('C++','Java','Python')
and status = 'completed'
group by user_id
having count(status) >= 2) rs
on a.user_id = rs.user_id
结果变成这种
因此我发现并不是所有的user_id的订单id都满足此题目需要因此需要再过滤一遍再加上相同的条件
**> > (
原因就是再第一次过滤的时候user_id这几位同学可能买了'C++','Java','Python'这几门,但是买了这几门的同一个人也可能买别的类别的书)**
and a.product_name in ('C++','Java','Python')
and a.status = 'completed'
order by a.id