在用SQL处理数值相关的列或者表的时候,会用聚合函数。
什么是聚合函数?聚合函数一般会出现在哪些语句中呢?
聚合函数:
一、定义:
SQL基本函数,聚合函数对一组值执行计算,并返回单个值,也被称为组函数。常见的聚合函数如下:
count()、sum()、avg()、min()、max();
二、应用场景:
聚合函数可以应用于查询语句的SELECT中,或者HAVING子句中,并结合group by使用。注意:不可用于WHERE语句中,因为WHERE是对逐条的行记录进行筛选。
三、应用:
1、count():求表的行数或者指定表中某个列的列值行数,null值被忽略。
select count(字段) from 表名; --得到该列值的非null值的行数
select count(*) from 表名; --用于统计整个表的行数。任何行,只要有一行非null,则整个表的行数就会被统计上。全为null(不会出现该情况)则不被统计
2、sum():返回指定数据的和,只能用于数字列,null值被忽略。
select sum(salary) from emp; --求所有salary的总和
3、max():返回一列中的最大值,null值被忽略。
select max(column_name) from table_name;
4、min():返回一列中的最小值,null值被忽略。
select max(column_name) from table_name;
5、avg():返回数值列的平均值,,null值被忽略。
select avg(salary) as avg_sal from emp;
四、关于null值的讨论
1、count():
当把列名称作为参数时,count函数会忽略null。使用符号*或者常量参数的时候,就会包含null。请看下面示例
2、sum():
sum函数会忽略null,但我们可能会遇到null分组。depno为10的员工都没有业务提成,因而对于depno为10的分组而言,计算comm的总和会返回null。请看下面示例
3、max() 与min():
min函数与max函数会忽略Null,而我们可能会遇到null分组,也可能会在一个分组里遇到null值。在下面的查询中,group by查询的结果里会有两个分组返回null值。请看下面示例
4、avg():
针对整个表计算平均值,只要对所要求的列使用avg函数即可;请记住:avg会忽略null!!!当使用聚合函数的时候,一定要先想一下如何处理null!!!!请看下面示例
其他:
1、having是一个过滤声明,通常在查询书里末端,主要用来对经过前面各种约束后查询到的数据结果进行过滤。注意:having只能放在group by之后并结合group by使用,没有group by 不能使用having。
2、group by子句只能放非聚合函数的列。
3、where是一个约束声明,在较早的位置执行,先执行where的约束条件我,再返回结果。注意:where子句不能使用聚合函数。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/8277.html