mysql求和函数语法教程

多行处理函数又叫分组函数:

1、count:计数

2、sum:求和

3、avg:平均值

4、max:最大值

5、min:最小值

多行处理函数的特点:

1)输入多行,最终输出的结果为1行。

2)分组函数自动忽略null

现在有员工表信息如下:mysql求和函数语法教程

员工表

select count(comm) from emp; //结果:4

可以看出一共有14行记录,但是count(comm)的时候结果等于4,说明count函数自动过滤掉为null的comm字段。

3)有null参数的数学运算结果一定为null

还是上面员工表的信息,我们查询每个员工的年薪,年薪=(工资+补贴)* 12 也就是:

(sal + comm) 12;

select ename , (sal + comm) * 12 as yealsal from emp; mysql求和函数语法教程

员工年薪

从结果中我们可以看到,只要别贴comm为null的,查询出来的年薪也是等于null,这也就说明了只要有null参与的数学运算,结果一定为null。

这个时候我们就需要一个单行处理函数来解决这样的问题:ifnull(‘为null的字段’ , ‘为null的时候当做什么来处理’),所以sql语句可以改成如下:

select ename , (sal + ifnull(comm,0)) * 12 as yealsal from emp; mysql求和函数语法教程

员工年薪

最后我们再来看一个需求来证明:分组函数自动忽略null

计算所有员工的别贴comm总和:select sum(comm) from emp;

在comm别贴字段中,含有为null的值,所有查询的结果应该为null,我们执行并查看结果:mysql求和函数语法教程

员工补贴总和

我们发现结果并不是null,而是自动将为null的值过滤掉了,所以我们再次证明了分组函数会自动过滤null值。

  • 74 views
    A+
发布日期:2021年09月06日 09:00:00  所属分类:知识经验
标签: