在日常写代码的时候,没有特别的注意avg(字段)组函数。今天仔细聊一聊avg()函数的使用注意事项

SELECT AVG(EMP.COMM) FROM EMP;    -- 采用avg组函数的时候,会自动忽略掉为字段值为空值的选项。

mysql avg 函数 数据库中avg函数_字段


SELECT SUM(EMP.COMM) / COUNT(*) AS "AVG(EMP.COMM)" FROM EMP;     -- count(*)数量为 所有的记录的数量。

mysql avg 函数 数据库中avg函数_mysql数据库_02


SELECT SUM(EMP.COMM) / COUNT(EMP.COMM) AS "AVG(EMP.COMM)" FROM EMP;   -- count(字段) 字段为不为空的记录的数量。

mysql avg 函数 数据库中avg函数_字段


SELECT AVG(NVL(EMP.COMM,0))  AS "AVG(EMP.COMM)" FROM EMP;    -- oracle数据库中 NVL(字段,值) 字段如果为空,则 用值替代。 如果为mysql数据库,NVL()替换为IFNULL(字段,值)

mysql avg 函数 数据库中avg函数_mysql数据库_02

下面说一下,avg(字段)  的具体的使用区别

AVG(字段)   ==   SUM(字段)   /   COUNT(字段)
AVG(字段)   !=    SUM(字段)   /   COUNT(*)
AVG(NVL(字段,0))   ==   SUM(字段)   /   COUNT(*)