SQL AVG函数
时间:2018-11-15 17:52:41 来源:igfitidea点击:
在本教程中,我们将学习如何使用SQL 聚合函数AVG来计算一组数字的平均值。
SQL AVG函数介绍
AVG函数计算值的平均值。
AVG函数的语法是:
AVG (ALL | DISTINCT expression)
可以在表达式之前指定ALL或DISTINCT修饰符。
- ALL修饰符表示AVG函数应用于所有值,包括重复值。如果未显式指定任何修饰符,则默认情况下AVG函数使用ALL修饰符。
- DISTINCT修饰符意思是AVG函数只应用于值集中的不重复的值。
请注意,AVG函数将会忽略掉NUL值。
AVG函数将返回一个值,其数据类型由表达式结果的类型决定。返回的数据类型可以是任何数字类型,如integer、float等。
AVG函数是ANSI SQL聚合函数之一,因此,它适用于所有关系数据库管理系统,如Oracle、Microsoft SQL Server、MySQL、PostgreSQL等。
SQL AVG函数示例
简单的SQL AVG函数示例
下面的查询语句计算products表中所有产品的平均单价。
SELECT AVG(unitprice) FROM products;
要计算产品不同单价的平均值,可以在AVG()函数中使用distinct修饰符:
SELECT AVG(DISTINCT unitprice) FROM products;
带GROUP BY子句的SQL AVG函数
要查找每个产品类别的平均单价,可以将AVG函数与GROUP BY子句一起使用:
SELECT categoryname, AVG(unitprice) FROM products INNER JOIN categories ON categories.categoryid = products.categoryid GROUP BY categoryname;
其中 INNER JOIN子句用于从categories表中获取类别名称。
带HAVING子句的SQL AVG函数
若要获取平均单价大于25美元的类别,可以将AVG函数与GROUP BY和HAVING子句一起使用:
SELECT categoryname, AVG(unitprice) FROM products INNER JOIN categories ON categories.categoryid = products.categoryid GROUP BY categoryname HAVING AVG(unitprice) > 25;