聚合函数
文章目录
1. 聚合函数介绍
聚合函数作用于一组数据,并对一组数据返回一个值
-
聚合函数类型
- AVG()
- SUM()
- MAX()
- MIN()
- COUNT()
-
聚合函数语法
SELECT column,group function(column)... FROM table WHERE condition GROUP BY column OREDER BY column
1.1 AVG和SUM函数
可以对数值型数据使用AVG 和 SUM 函数
SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary)
FROM employees;
1.2 MIN和MAX函数
可以对任意数据类型的数据使用 MIN 和 MAX 函数
SELECT MIN(hire_date), MAX(hire_date)
FROM employees;
1.3 COUNT函数
-
COUNT(*)返回表中记录总数,适用于任意数据类型
SELECT COUNT(*) FROM employees;
-
COUNT(expr) 返回expr不为空的记录总数
SELECT COUNT(commission_pct) FROM employees;
-
问题:用count(*),count(1),count(列名)谁更优?
其实,对于MyISAM引擎的表是没有区别的,这种引擎内部有一计数器在维护着行数,复杂度均为O(1) Innodb引擎的表用count(*),count(1)直接读行数,复杂度是O(n),因为innodb真的要去数一遍,但优于具体的 count(列名)
-
能不能使用count(列名)替换count(*)?
不要使用count(列名)来替代 count(*)
因为count(*