GROUP FUNCTION对NULL值的处理
GROUP FUNCTION对NULL值的处理
Group functions ignore null values in the column (组函数忽略NULL值)
如下:
SQL> select count(*) from employees;
COUNT(*)
----------
107
SQL> select count(commission_pct) from employees;
COUNT(COMMISSION_PCT)
---------------------
35
在employees表中有107行,但非null值的commission_pct列只有35行。
SQL> select avg(commission_pct) from employees;
AVG(COMMISSION_PCT)
-------------------
.222857143
SQL> select avg(nvl(commission_pct,0)) from employees;
AVG(NVL(COMMISSION_PCT,0))
--------------------------
.072897196
通过对比两次求平均值的结果,可以看出group function在计算时,对null值是丢弃的。
还有个注意点:你不能在where 子句中使用group function,因为where子句先执行。