1. 程式人生 > >oracle avg() 絕對平均值

oracle avg() 絕對平均值

targe get pos visit oracl body 就是 sina 賦值

原貼地址

問題:

表: visits

NUMB VISITNUMB
------ ----------
SD01 12628
SD02 6168216
SD03
SD04 2308646
SD05 29979109
SD06
SD07 699879
SD08 1512191
SD09 5771408
SD10 2393528
SD11 832988
SD12
SD13
SD14
GD06 492559
GD04 928430
GD02 1881556
GD01 5759619
GD07 955794
GD09 4207098

NUMB VISITNUMB
------ ----------
GD10
GD03
GD05
GD08

問題:求大於所有visitnumb平均值的行

如果單純用:

select name,visitnumb
 from visits
 where visitnumb>(selectavg(visitnumb) from visits);

這樣是不行的,因為 avg自動過濾掉了值為空的visitnumb值。

正確:

select name,visitnumb
 from visits
 where visitnumb>(selectavg(nvl(visitnumb,0
)) fromvisits);

如果visitnumb為空,則賦值0,這樣算出來的就是絕對平均值了(包含為空的行)。

oracle avg() 絕對平均值