Group By和Having
一. Group By
结论1:
- SELECT中出现的非组函数的字段必须声明在GROUP BY中。反之,GROUP BY 中声明的字段可以不出现在SELECT中。
结论2:
- GROUP BY 必须声明在FROM后面,WHERE后面,ORDER BY前面,LIMIT前面
结论3:
- MySQL中GROUP BY中使用WITH ROLLUP
二. Having
结论1:
- 如果过滤条件中使用了聚合函数,则必须使用 HAVING 来替换WHERE。否则,报错。
结论2:
- HAVING 必须声明在 GROUP BY 的后面
结论3:
- 在过滤条件中没有聚合函数时,则此过滤条件必须声明在HAVING中。
- 在过滤条件中没有聚合函数时,则此过滤条件声明在WHERE中和HAVING中都可以。但是,建议大家声明在WHERE中。
本文详细介绍了MySQL中的GROUP BY和HAVING子句,包括GROUP BY的基本规则、执行顺序,以及HAVING用于过滤聚合函数的条件。还提供了多个练习题,涉及计算工资的统计指标和复杂查询条件。
订阅专栏 解锁全文
2022

被折叠的 条评论
为什么被折叠?



