SQL中gruop by,having,where使用注意点:
1 如果select子句中的字段没有在聚合函数中,那么就必须出现在group by 子句中。而出现在group by子句中不一定要出现在select子句中。
2 聚合函数不能够用在where子句后面。
3 having是过滤分组过后的数据,在having组函数不能用列别名。
4 having子句也可以用在group By 的前面,但是建议用在group by 的后面,以便于
逻辑理解。
5 having 和 where的区别:
a.having只能用在group by 后面。有having肯定有group by子句。
b.where子句用在having前面。
c.having 是用于分组统计过后的过滤,而where是过滤的是原始数据,也就是分组统计之前的数据。
个人学习中的一点总结,错误和不足之处欢迎指正。