特别注意不要出现除0错误
DECODE(DECODE(A,NULL,0,1)+DECODE(C,NULL,0,1)+DECODE(C,NULL,0,1),0,NULL,
nvl(A,0)+NVL(B,0)+NVL(C,0)/DECODE(A,NULL,0,1)+DECODE(C,NULL,0,1)+DECODE(C,NULL,0,1)
)
DECODE(DECODE(A,NULL,0,1)+DECODE(C,NULL,0,1)+DECODE(C,NULL,0,1),0,NULL,
nvl(A,0)+NVL(B,0)+NVL(C,0)/DECODE(A,NULL,0,1)+DECODE(C,NULL,0,1)+DECODE(C,NULL,0,1)
)
这个不行吧,只要有一个为空值,最后平均值也将是空值
begin
create table t1(a varchar2(30));
insert into t1 select avg(a) from t2;
insert into t1 select avg(b) from t2;
insert into t1 select avg(c) from t2;
select avg(a) from t2; --三列的平均值
end;
/
仅供参考