SQL分组函数

       分组函数是对表中的多行进行操作,而每组返回一个计算结果。常用的分组函数包括:

函数 语法格式 函数描述以及注意事项
AVG AVG([distinct|all] expr) 返回一个数字列或计算列的平均值,忽略空值
SUM SUM([distinct|all] expr) 返回一个数字列或计算列总和,忽略空值
MAX MAX([DISTINCT|ALL]expr) 返回一个数字列或计算列的最大值
MIN MIN([DISTINCT|ALL]expr) 返回一个数字列或计算列的最小值
COUNT

 COUNT({*|[DISTINCT|ALL]expr})

其中expr用来判定非空值(使用*计算所有选定行,包括重复行和带有空值的行)

返回找到的记录数

 

一、分组函数语法

    SELECT [column,] group_function(column), ...

    FROM table

    [WHERE condition]

    [GROUP BY column]

    [ORDER BY column];

二、分组函数使用准则:

    DISTINCT 使函数只考虑非重复值,ALL则考虑包括重复值在内的所有值。默认为ALL.

  带有expr参数的函数的数据类型可以为CHAR,VARCHAR2,NUMBER,DATE.

    所有分组函数都忽略空值。可以使用NVL,NVL2,或COALESCE函数代替空值

    使用GROUP BY 时,Oralce服务器隐式地按照升序对结果集进行排序。可以使用ORDER BY 更改排序结果。 

三、GROUP BY 使用准则:

    SELECT 中出现的列,如果未出现在分组函数中,则GROUP BY子句必须包含这些列

    WHERE 子句可以某些行在分组之前排除在外

    不能在GROUP BY 中使用列别名

    默认情况下GROUP BY列表中的列按升序排列

    GROUP BY 的列可以不出现在分组中 

 

posted @ 2017-09-04 16:36  七月晓晓翁  阅读(2129)  评论(0编辑  收藏  举报