多行处理功能也称为分组功能:
1.计数:计数。
2.总和:总和
3.avg:平均值
4.***x:最大值
5.min:最小值
多行处理功能的特点:
1)输入多行,最终输出结果为1行。
2)分组函数自动忽略null
现在有员工表信息如下:
现在有员工表信息如下:
员工表
从emp中选择计数(comm );//结果:4
可以看到有14行记录,但是count(comm)的结果等于4,说明count函数自动过滤掉了null comm字段。
3)带空参数的数**算结果必须为空
或者上面员工表中的信息。我们查询每个员工的年薪。年薪=(工资+补贴)* 12为:
(sal+comm)12;
select ename , (sal + comm) * 12 as yealsal from emp;
select ename,(sal+comm)* 12 as yeal sal from EMP;
员工年薪
从结果中我们可以看到,只要comm不为null,查询到的年薪也等于null,也就是说只要有涉及null的数**算,结果就一定是null。
这时候我们需要一个单行处理函数来解决这个问题:if null(‘为空的字段’, ‘当它为空时该怎么办’),因此可以将sql语句更改为以下内容:
select ename , (sal + ifnull(comm,0)) * 12 as yealsal from emp;
select ename,(sal + ifnull(comm,0))* 12 as yeal sal from EMP;
员工年薪
最后,我们来看一个证明它的需求:分组函数自动忽略null。
计算所有员工发布的comm的总和:从emp中选择sum(comm );
在comm别贴字段中,含有为null的值,所有查询的结果应该为null,我们执行并查看结果:
在comm paste字段中,有一个null值,所有查询的结果都应该是null。我们执行并查看结果:
员工补贴总额
我们发现结果不是null,而是null值被自动过滤掉了,于是我们再次证明了分组函数会自动过滤null值。
本文来自热恋少女投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/628216.html