为了账号安全,请及时绑定邮箱和手机立即绑定

记一下avg逻辑

SQL> select * from tb1212_1;


   A    B    C

---- ---- ----

   0      

   1      

        1 

             1

   1      

        1 

             1


11 rows selected

(首行收据为 (0,null,null),最后四行为(null,null,null))

SQL> select sum(a*3/2+7)/count(sum(a*3/2+7)),avg(a*3/2+7),count(sum(a*3/2+7)),count(a*3/2+7) from tb1212_1 group by a;


SUM(A*3/2+7)/COUNT(SUM(A*3/2+7))   AVG(A*3/2+7)     COUNT(SUM(A*3/2+7))    COUNT(A*3/2+7)

-------------------------------- ------------ ------------------- -------------------- ---------------------- --------

                            7.75                                         7.75                   2                                              2


所以avg(expr)的算法估计就是 sum(expr)/count(expr) ,而expr中如果含有一个或多个字段,其中有一个为null,那sum(expr)、count(expr)当前这行就为null;



其实为什么count(sum(a*3/2+7))的值是2呢?


正在回答

1 回答

...

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Oracle高级查询
  • 参与学习       62759    人
  • 解答问题       144    个

数据库开发中应用广泛的高级查询,本教程通过大量的案例详细讲解

进入课程

记一下avg逻辑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信