having和where的使用知识
- where与having同时使用时,执行顺序时where->having。
- 但只使用where或者having时,作用一样(不能(慎用)使用聚合函数)。
where不能使用聚合函数
- 因为聚合函数是从确定的结果集中整列数据进行计算的 ,而where子句则是对数据行进行过滤的。所以相矛盾不能使用。
聚合函数的使用
- 如果没有分组是不能在结果集中使用聚合函数值和非聚合函数的字段的
In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column ‘test.salaries.emp_no’; this is incompatible with sql_mode=only_full_group_by
在不带GROUP BY的聚合查询中,SELECT列表的表达式#1包含非聚合列test. salary .emp_no;此参数与sql_mode=only_full_group_by不兼容
- 所有在没有分组的情况下结果集都是聚合函数,要么不用