题解 | #牛客的课程订单分析(二)#
牛客的课程订单分析(二)
http://www.nowcoder.com/practice/4ca4137cb490420cad06d2147ae67456
借此题,写一下sql语句的执行顺序。知其然知其所以然。
- SELECT user_id
- from order_info
- where date >= '2025-10-15' and status = 'completed' and product_name in ('C++','Python','Java')
- group by user_id
- having count(id) >= 2
- order by user_id asc;
sql各关键字执行顺序:(从上到下执行,会在每个执行过程产生临时表供下一个步骤使用)
- 2:执行from、join等连接表字段(确定表)
- 3:根据where条件对表中记录进行过滤
- 4:对3中执行过程中的临时表,进行聚合
- 5:having语句,在4的聚合条件下,进行having条件过滤
- 6:select语句,在5中选择哪些表字段
- 7:排序,返回最终查询结果