关于sql中求平均值出现null值的解决方案
在计算平均值时,AVG()
函数
excel方差函数excelsd函数已知函数 2 f x m x mx m 2 1 4 2拉格朗日函数pdf函数公式下载
将忽略NULL值。因此,如果要计算平均值的列中有NULL值,计算均值时,要特别注意。
实例12 AVG()函数对NULL值的处理
从TEACHER
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
中查询所有教师的平均工资。实例代码:
SELECT AVG (SAL) AS AVG_AGE1,SUM(SAL)/COUNT(*) AS AVG_AGE2, SUM(SAL)/COUNT(SAL) AS AVG_AGE3 FROM TEACHER
运行结果如图8.12所示。
图8.12 TEACHER表中所有教师的平均工资
可以发现得到了不同的结果。实际上,“AVG(SAL)”与“SUM(SAL)/COUNT(SAL)”语句是等价的。因为AVG(SAL)语句的执行过程实际上是将SAL列中的值加起来,再将其和(也就等价于SUM(SAL))除以非NULL值的数目(也就等价于COUNT(SAL))。而语句“SUM(SAL)/COUNT(*)”则不然,因为COUNT(*)返回的是表中所有记录的个数,而不管SAL列中的数值是否为NULL。 注意
AVG()函数在计算一列的平均值时,忽略NULL值。但是,如果在该列中,所有行的值都是NULL,则AVG()函数将返回NULL值。
如果不想对列中的所有值求平均,则可在WHERE子句中使用搜索条件来限制用于计算均值的行。
实例13 在WHERE子句中使用搜索条件来限制用于计算均值的行
从TEACHER表中查询所有计算机系教师的平均年龄。实例代码:
SELECT AVG (AGE) AS AVGCOMPUTER_AGE FROM TEACHER
WHERE DNAME = '计算机'
运行结果如图8.13所示。
图8.13 TEACHER表中所有计算机系教师的平均年龄
当执行SELECT语句时,DBMS将表中的每行对WHERE子句中的搜索条件“DNAME = '计算机'”求值。只有那些搜索条件为True时,行中的AGE值才传到均值函数AVG (AGE)中。 当然,除了显示表中某列的平均值,还可用AVG()函数作为WHERE子句的一部分。与前面介绍的MAX()函数一样,不能直接用于WHERE子句,必须以子查询的形式。 实例14 AVG()函数作为WHERE子句中搜索条件的一部分
从TEACHER表中查询所有年龄高于平均年龄的教师的信息。实例代码:
SELECT *
FROM TEACHER
WHERE AGE >= (SELECT AVG (AGE) FROM TEACHER) ORDER BY AGE
运行结果如图8.14所示。
图8.14 TEACHER表中所有年龄高于平均年龄的教师的信息
Oracle/PLSQL中的一个函数。
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
为:
NVL( string1, replace_with)
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数的都为NULL ,则返回NULL。
使用count(*)函数是,所有的聚集函数都忽略控制,如果在一对带有null的列上执行AVG或其他聚集操作,NULL将不会作为聚集的一部分,除非利用函数(如COALESCE()函数或ISNULL()函数)将NULL处理成非空值。
请问如何使用上述ISNULL()函数和COALESCE()函数,请举例说明 谢谢
问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
补充 2008-04-08 13:35
ISNULL
使用指定的替换值替换 NULL。
语法
COALESCE()函数 是一个多项替换函数
COALESCE(exp1,exp2) 当EXP1不为空时返回EXP1,否则返回EXP2
COALESCE(EXP1,EXP2,EXP3,。。,EXPN) N>=3,当EXP1不为空,返回EXP1结束 当EXP1为空,执行COALESCE(EXP2,EXP3,。。,EXPN)。。直至返回EXPN。。
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。
返回类型
返回与 check_expression 相同的类型。
注释
如果 check_expression 不为 NULL,那么返回该表达式的值;否则返回 replacement_value。
示例
A. 将 ISNULL 与 AVG 一起使用
下面的示例查找所有书的平均价格,用值 $10.00 替换 titles 表的 price 列中的所有 NULL 条目。
USE pubs
GO
SELECT AVG(ISNULL(price, $10.00)) FROM titles
GO
下面是结果集:
-------------------------- 14.24
(1 row(s) affected)
B. 使用 ISNULL
下面的示例为 titles 表中的所有书选择书名、类型及价格。如果一个书名的价格是 NULL,
那么在结果集中显示的价格为 0.00。
USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,
ISNULL(price, 0.00) AS Price FROM titles
GO