Oracle之分组函数(认证考试指南)

来源:互联网 发布:济南知豆新能源汽车 编辑:程序博客网 时间:2024/05/01 01:11

学习分组函数时,两条基本规则:

第一,它们每次总是作用于一组行。第二,除了COUNT函数的COUNT(*)形式外,所有的分组函数都忽略分组列或者表达式中包含空值的行。


单行函数可以嵌套任意层,但分组函数最多可以嵌套两层。


COUNT函数

COUNT(*)                                             //组中所有行(包括具有空值和重复值的行)

COUNT(DISTINCT expr)                   //只计算每个组中expr唯一出现的次数

COUNT(ALL expr)                             //如果expr基于命名的列,就忽略空值,如果是基于各种情况的列,将为每一行进行计算,而不管行中是否有空值。

COUNT(expr)                                    //与all等效



AVG函数:只能应用于数据类型的数据。

MAX、MIN函数:适用于任何数据类型。

COUNT函数:针对number、date、char、varchar2 。  在计数时,将把数字、空值、逻辑值、日期、或以文字代表的数计算进去。

GROUP BY:不能用别名。



使用GROUP BY子句分组数据

分组特性(grouping attribute):指定的列或者表达式

在select列表中不是分组函数的所有项必定是GROUP BY子句的分组特性。

当使用GROUP BY时,只有分组特性和分组函数才能在select子句中出现。




使用HAVING子句包含或者排除分组行

where→group by →分组函数→having