6.6 集合函数

集合函数经常配合GROUP BY或HAVING子句使用,当然它们也可以单独使用。该类型的函数中除了COUNT函数都会忽略列值为NULL的数据。

6.6.1 求平均值函数

AVG([distinct|all]expr)函数。该函数可求取指定列的平均值,表示某组的平均值,返回数值类型。各参数表示的具体含义如下:

❑distinct:去除重复的值。

❑all:表示所有的值,包括重复的值,也是默认值。

❑expr:表达式。只能是数值类型。

1)这里以PRODUCTINFO的PRODUCTPRICE字段为例,演示最简单的使用方法。该表的结构可以参考第4章。测试脚本如下:


SELECT AVG(ALL PRODUCTPRICE+100)FROM PRODUCTINFO;


【执行效果】

执行效果见图6.62。

6.6 集合函数 - 图1

图 6.62 AVG函数

2)使用该函数时,WHERE条件子句中可以使用条件。例如,与GROUP BY子句一起使用,或只用某个范围内的值。下面演示使用GROUP BY子句查询各类产品的平均价格。演示脚本如下:


SELECT AVG(ALL PRODUCTPRICE)FROM PRODUCTINFO GROUP BY CATEGORY;


【执行效果】

执行效果见图6.63。

6.6 集合函数 - 图2

图 6.63 AVG与GROUP BY子句一起使用

3)第三个示例将演示价格大于2000的所有产品的平均价格。演示脚本如下:


SELECT AVG(ALL PRODUCTPRICE)FROM PRODUCTINFO WHERE PRODUCTPRICE>2000;


【执行效果】

执行效果见图6.64。

6.6 集合函数 - 图3

图 6.64 AVG与WHERE一起使用

该函数的返回值的精度与列的数据类型和是否有小数有关,希望读者注意。