mysql基础-mysql中的DQL-分组函数
点击蓝色“潭时录”关注我丫
每天和小潭一起快乐的学习~
你好,我是在学mysql的小潭。鉴于篇幅原因,小潭将mysql查询部分的知识点分成同期不同篇的方式进行学习和介绍。该篇中我们将了解mysql中的分组函数。
sql语句选中使用F9可快速提交查询,使用F12可以格式化sql语句。
分组函数
#分组函数
/*
功能:用作统计使用,又称为聚合函数,统计函数或组函数
分类:sum 求和
avg 求平均值
max 最大值
min 最小值
count 计算个数
特点:
1.sum和avg一般处理数值型
max,min和count可以处理任何类型
2.分组函数都忽略null值
3.可以和distinct搭配进行去重运算
4.和分组函数一同查询的字段,要求是group by后的字段
*/
#1.简单使用
SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT COUNT(salary) FROM employees;
SELECT SUM(salary) 和,ROUND(AVG(salary),2) 平均,MAX(salary) 最大,MIN(salary) 最小,COUNT(salary) 个数
FROM employees;
#2.count函数介绍
SELECT COUNT(salary) FROM employees;
SELECT COUNT(*) FROM employees; #任何列不为空即可被统计,查询表中总行数
SELECT COUNT(1) FROM employees; #统计列为1的个数,实际在表中加了一列值为1的数据
#效率:
/*
MYISAM存储引擎下,count(*)效率高
INNODB存储引擎下,count(*)和count(1)的效率差不多,比count(字段)高一些
一般使用count(*)用作统计行数
*/
小测试:
#1.查询公司员工工资的最大值,最小值,平均值和总和
SELECT MAX(salary) 工资最大值,MIN(salary) 工资最小值,ROUND(AVG(salary),2) 平均工资,SUM(salary) 总和
FROM employees;
#2.查询员工表中的最大入职时间和最小入职时间的相差天数(DIFFERNECE)
SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) AS Difference FROM employees;
#3.查询部门编号为90的员工个数
SELECT COUNT(*) FROM employees WHERE department_id = 90;