分组函数(多行处理函数)
多行处理函数的特点:输入多行,最终输出一行。
函数 | 描述 |
count | 计数 |
sum | 求和 |
avg | 平均值 |
max | 最大值 |
min | 最小值 |
注意:
分组函数在使用的时候必须先进行分组,然后才能用。
如果你没有对数据进行分组,整张表默认为一组。
找出最高工资?
select max(sal) from emp;
找出最低工资?
select min(sal) from emp;
计算工资和:
select sum(sal) from emp;
计算平均工资:
select avg(sal) from emp;
14个工资全部加起来,然后除以14。
计算员工数量?
select count(ename) from emp;
分组函数在使用的时候需要注意哪些?
🍉第一点:分组函数自动忽略NULL,你不需要提前对NULL进行处理。
select sum(comm) from emp;
select count(comm) from emp;
select avg(comm) from emp;
🍉第二点:分组函数中count(*)和count(具体字段)有什么区别?
select count(*) from emp;
select count(comm) from emp;
count(具体字段):表示统计该字段下所有不为NULL的元素的总数。
count(*):统计表当中的总行数。(只要有一行数据count则++)
因为每一行记录不可能都为NULL,一行数据中有一列不为NULL,则这行数据就是有效的。
🍉第三点:分组函数不能够直接使用在where子句中。
select ename,sal from emp where sal > min(sal); 表面上没问题,运行一下?
ERROR 1111 (HY000): Invalid use of group function //报错
?????????????????????????????????????????????????????????????????????
说完分组查询(group by)之后就明白了了。
🍉第四点:所有的分组函数可以组合起来一起用。
select sum(sal),min(sal),max(sal),avg(sal),count(*) from emp;