9.6聚合函数
Mysql 系统提供了很多的函数
Count:统计个数,次数,null不统计
Max:最大值
Min:最小值
Sum:求和
Avg:平均值
Round:四舍五入
有使用聚合函数的时候,一般都会给别名
9.6.1 count 函数
(1)查询emp表中记录数
Count(*); 不会忽略null的值
select count(*) from emp;
(2)统计emp表中,有提成的人数
Count(具体字段),null的话会被忽略
select count(comm) from emp;
(3)工资大于2500的员工的人数
select count(*)from emp where sal > 2500;
(4)薪资(工资+奖金)大于2500的员工的人数
select count(*)from emp where sal+ifnull(comm,0) > 2500;
(5)查询有提成的人数,有上一级领导的人数
select count(comm),count(mgr) from emp where mgr or comm;
9.6.2 sum 求和,avg平均分,round四舍五入
(1)查询所有员工工资总和
select sum(sal) from emp;
(2)查询所有员工工资总和、提成总和
select sum(sal),sum(comm) from emp;
(3)查询所有员工工资总和、提成总和、薪资
select sum(sal),sum(comm),sum(sal + ifnull(comm,0)) money from emp;
(4)计算员工的平均工资
select avg(sal),avg(comm) from emp;
(5)平均工资,保留2位小数
select round(avg(sal),0) money,avg(comm)from emp;
9.6.3 max和min
Max 最大值 和 Min 最小值
查询员工表中,工资最高的、最低的
select max(sal)max_sal,min(sal)min_sal from emp;
9.6.4 分段函数 case
员工表中,根据薪资不一样,给不一样的评论
>4000,NB666
>3000,NB66
>2000,NB6
<2000,ZZ
select sal,
Case
when sal>4000 then "NB666"
when sal>3000 then "NB66"
when sal>2000 then "NB6"
else"ZZ"
end as pj
from emp;
9.6.5字符串截取
Left (A,4)从左边开始截取4个字符
Right(A,4)从右边开始截取4个字符
截取中间:
Select SUBSTRING_INDEX(SUBSTRING_INDEX(原字段,‘开头条件‘,-1),‘结尾条件‘,1)
select substring(hiredate,6,2) from emp where empno=‘7788‘;
我 爱 你
1987-04-19-》 1987
(1)获取员工的入职年份
select ename,hiredate,left(hiredate,4)from emp;
(2)获取员工的入职工龄
select ename,hiredate,2021-left(hiredate,4)from emp;