2.1 对某字段的值进行汇总
仅仅在两种特殊情况下,Oracle在聚合函数中考虑了NULL值。第一种是在GROUPING功能里,用来检验包含了NULL值的分析函数的结果,是直接由所在的表得来,还是由分析计算得到的最终聚合“NULL集”得来。第二种情况是在COUNT(*)功能里。因为通配符“*”表示表中所有的字段,所以Oracle忽略任何实际的数据,而单独统计行数,看起来像是把NULL值和普通值一样对待。
COUNT(*)统计了表中所有行,而COUNT(列名)仅仅统计了该列里不为NULL的那些行。
2.2 GROUP BY 子句决定目标表中的记录如何分组,通过把不参加聚合计算的字段放在GROUP BY子句中,告诉Oracle在进行聚合计算时,如何把表中的进行分解、分组;
要写出正确的GROUP BY子句,就必须牢记:值要么用来分组,要么用来参加聚合计算——没有其他用途。