码迷,mamicode.com
首页 > 数据库 > 详细

oracle avg() 绝对平均值

时间:2018-03-07 15:15:16      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:大于   赋值   就是   html   自动   col   问题:   lan   target   

原贴地址

 

问题:

表: 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() 绝对平均值

标签:大于   赋值   就是   html   自动   col   问题:   lan   target   

原文地址:https://www.cnblogs.com/wars/p/8521781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!