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.62 AVG函数
2)使用该函数时,WHERE条件子句中可以使用条件。例如,与GROUP BY子句一起使用,或只用某个范围内的值。下面演示使用GROUP BY子句查询各类产品的平均价格。演示脚本如下:
SELECT AVG(ALL PRODUCTPRICE)FROM PRODUCTINFO GROUP BY CATEGORY;
【执行效果】
执行效果见图6.63。
图 6.63 AVG与GROUP BY子句一起使用
3)第三个示例将演示价格大于2000的所有产品的平均价格。演示脚本如下:
SELECT AVG(ALL PRODUCTPRICE)FROM PRODUCTINFO WHERE PRODUCTPRICE>2000;
【执行效果】
执行效果见图6.64。
图 6.64 AVG与WHERE一起使用
该函数的返回值的精度与列的数据类型和是否有小数有关,希望读者注意。