因为了解过一些 SQL 执行顺序,对该 SQL 有些不解的地方,为什么 having 后可用 select 中起的别名
经 google 后得知触发了临时表,有懂得小伙伴烦请告知一下那个情况,如果还能能给解释一下,就更万分感谢了
牛客网简单类题目: https://www.nowcoder.com/practice/ddbcedcd9600403296038ee44a172f2d
select
university,
avg(question_cnt) as avg_question_cnt,
avg(answer_cnt) as avg_answer_cnt
from
user_profile
group by
university
having
avg_question_cnt < 5
or
avg_answer_cnt < 20
8 种触发临时表的情况: https://www.w3cschool.cn/hjikt5/cir4pozt.html
1 、UNION 查询;
2 、用到 TEMPTABLE 算法或者是 UNION 查询中的视图;
3 、ORDER BY 和 GROUP BY 的子句不一样时;
4 、表连接中,ORDER BY 的列不是驱动表中的;
5 、DISTINCT 查询并且加上 ORDER BY 时;
6 、SQL 中用到 SQL_SMALL_RESULT 选项时;
7 、FROM 中的子查询;
8 、子查询或者 semi-join 时创建的表;