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中。
SQL92语法:
SELECT .