zoukankan      html  css  js  c++  java
  • 在oracle的聚合函数(sum、avg等)中使用NVL函数,强迫加入空值

    前面我们在介绍oracle的聚合函数时提到如果在给定的值中存在空值的话,oracle将会忽略掉这些空值。这个处理的方式在大多数时候是符合我们要求的,但是在有些时候可能会有问题。

    例如,现在到了年关,公司会对部分员工进行奖励,而当然会有一部分人没有得到奖励。比如现在有一张表中存的是员工的奖金额,那个将会有一部分人对应的奖金额是空值,因为他们根本就没有得到奖励,现在老板让你统计全公司的得奖平均额。

    如果你直接使用

    Select avg(bonus) from emp;

    得到的结果将会是那些得到奖励的人中的平均奖励额。

    而老板要求的是统计出全公司所有员工的奖励平均额。

    这是你应该使用NVL函数来把那些没有拿到奖励的员工也强行加入进来。

    例如:

    Select avg(NVL(bonus,0)) from emp;

    在我们的scottschema里有一个表是emp,虽然里面没有奖金,但有另外一个column comm.,我们可以驾驶comm来表示奖金来测试一下

    Select avg(comm) from emp; 得到

    AVG(COMM)

    ———-

    550

    Select avg(NVL(comm,0)) from emp; 得到

    AVG(NVL(COMM,0))

    —————-

    157.142857

    这样就验证了刚才的说法。

  • 相关阅读:
    实现一个简易版的react
    浅学virtualDom和diff算法
    148. 排序链表 归并排序 | 快速排序
    OC中的NSDictionary和NSMutableDictionary
    OC中的block
    OC中的category&Extension
    OC中判断方法是否实现
    OC的分组导航标记
    OC中程序的内存分布&类加载
    OC中的@property和@synthesize
  • 原文地址:https://www.cnblogs.com/lzhdim/p/1361394.html
Copyright © 2011-2022 走看看