聚合函数是用来求和,平均值,最大最小值一类的函数。
常用的有COUNT、SUM、MAX、MIN、AVG。
count()
参数为列名,也可以使用*,表示全部列。
默认*会统计所有行的数据,如果想过滤掉NULL行,要指定具体列名。
过滤空行:
mysql> select * from employees where 'to_date' is null;
Empty set (0.00 sec)
注:
1.聚合函数在进行计算之前,会自动将NULL的行排除,但是count(*)是个例外。
2.适用范围,MAX/MIN适合所有类型的列,而SUM/AVG只适合数值类型的列。
3.想要计算值的类型时,可以在COUNT函数中使用DISTINCT。
对表进行分组
注意点:
1.聚合函数和GROUP BY子句只能在SELECT子句中使用
2.GROUP BY 子句中不能使用SELECT子句中列的别名
3.GROUP BY 子句中的聚合结果是无序的
4.WHERE 子句中不能使用聚合函数
5.子句的书写顺序,SELECT-->FROM-->WHERE-->GROUP BY
将表分组之后再进行聚合
SELECT name,count(*) FROM people GROUP BY name;
聚合键中包含NULL时,会以空行的形式表现出来。
GROUP BY和WHERE并用时的执行顺序:FROM-->WHERE-->GROUP BY-->SELECT
注意
1.SELECT子句中只能存在下面三种元素:
常数
聚合函数
聚合键,即GROUP BY子句中的列
2.使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名。
为聚合结果指定结果
HAVING子句用来指定分组的条件,需要写在GROUP BY子句之后。
及时行乐