分组函数:
功能;它是用来做统计使用,又叫统计函数、聚合函数、组函数。
分类:sum 求和、avg平均值、max最大值、min最小值、count计算个数
特点:
1.sum、avg一般只用于处理数值型数据
max、min、count可以处理任何类型的数据
2.sum、avg、max、min、count,以上分组函数均忽略null值
3.可以和distinct搭配实现去重的运算
如:SELCT SUM(DISTINCT(salary)), SUM(salary) FROM employees
4.和分组函数一同查询的字段要求数group by后面的字段
COUNT()函数详细介绍:
1.统计工资的种类:SELECT COUNT(salary) FROM employees
2.统计数据表中的行数:SELECT COUNT(常量) FROM 表名
如:(1)SELECT COUNT(*) FROM employees
(2)SELECT COUNT(1) FTOM employees
上述俩个统计函数的方法的效率比较:
MYISAM存储引擎下,COUNT(*)的存储效率比较高
INNODB存储引擎下,COUNT(*)和COUNT(1)的效率差不多,只是比COUNT(字段)的效率高一些
综上所述,我们一般情况下,还是用COUNT(*)来统计行数。
习题:
1.查询各 job_id 的员工工资的最大值,最小值,平均值,总和,并按 job_id 升序
SELECT MAX(salary) ma_salary,MIN(salary) mi_salary,ROUD(AVG(salary),2) av_salary,SUM(salary) sum_salary
FROM employees
ORDER BY job_id ASC
2.查询员工最大入职时间和最小入职时间之间相差的天数(DIFFERENCE)
SELECT DATEDIFF(MAX(hiredate),MIN(hiredate))
FROM employees
3.查询部门编号为90的员工个数
SELECT COUNT(*)
FROM employees
WHERE department_id=90