Oracle 平均数详解avg

1 概述

平均数
排除 null 后,取平均数:avg(列)
包含 null 后,取平均数:avg(coalesce(列, 0))

聚合函数在计算时会排除 null,如:count()、sum()、max()、min()、avg()
但 count(列) 例外

2 示例

with student_info as (
  select 1 sno, 110 score from dual union all
  select 2 sno, null score from dual union all
  select 3 sno, 90 score from dual
)
select avg(si.score), -- (110 + 90) / 2 = 100
       avg(coalesce(si.score, 0)) -- (110 + 90) / 3 = 66.67
  from student_info si;

3 扩展

3.1 聚合函数排除 null

with student_info as (
  select 1 sno, 110 score from dual union all
  select 2 sno, null score from dual union all
  select 3 sno, 90 score from dual
)
select sum(si.score), -- 200
       max(si.score), -- 110
       min(si.score)  -- 90
  from student_info si;

3.2 count(1)、count(*)、count(列) 区别

  • count(1)、count(*):计算所有列的数量(含 空列 null)
  • count(列):计算非空列的数量
with student_info as (
  select 1 sno, 110 score from dual union all
  select 2 sno, null score from dual union all
  select 3 sno, 90 score from dual
)
select count(1), -- 3
       count(*), -- 3
       count(si.score) -- 2
  from student_info si;

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...