第9课 汇总数据
作者:互联网
第9课 汇总数据
9.1 聚集函数
聚集函数(aggregate function):对某些行运行的函数,计算并返回一个值。
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和
9.1.1 AVG()函数
AVG()通过对表中行数计数并计算其列值之和,求得该列的平均值。AVG() 可用来返回所有列的平均值,也可以用来返回特定列或行的平均值。 下面的例子使用 AVG()返回 Products 表中所有产品的平均价格:
SELECT AVG(prod_price) AS avg_price
FROM Products;
注释:
此 SELECT 语句返回值 avg_price,它包含 Products 表中所有产品的 平均价格。如第 7 课所述,avg_price 是一个别名。也可以与WHERE配合,确定特定列或行的平均值。
说明:AVG()函数忽略列值为 NULL 的行。
9.1.2 COUNT()函数
COUNT()函数进行计数。可利用 COUNT()确定表中行的数目或符合特定 条件的行的数目。 COUNT()函数有两种使用方式:
1、使用 COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值 (NULL)还是非空值。
下面的例子返回 Customers 表中顾客的总数:
SELECT COUNT(*) AS num_cust
FROM Customers;
2、使用 COUNT(column)对特定列中具有值的行进行计数,忽略 NULL 值。
下面的例子只对具有电子邮件地址的客户计数:
SELECT COUNT(cust_email) AS num_cust
FROM Customers;
9.1.3 MAX()函数
MAX()返回指定列中的最大值。MAX()要求指定列名,如下所示:
SELECT MAX(prod_price) AS max_price
FROM Products;
提示:对非数值数据使用 MAX() 虽然 MAX()一般用来找出最大的数值或日期值,但许多(并非所有) DBMS 允许将它用来返回任意列中的最大值,包括返回文本列中的最 大值。在用于文本数据时,MAX()返回按该列排序后的最后一行。
说明:NULL 值 MAX()函数忽略列值为 NULL 的行。
9.1.4 MIN()函数
MIN()的功能正好与 MAX()功能相反,它返回指定列的最小值。
9.1.5 SUM()函数
SUM()用来返回指定列值的和(总计)。
下面举一个例子,OrderItems 包含订单中实际的物品,每个物品有相 应的数量。可如下检索所订购物品的总数(所有 quantity 值之和)
SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;
SUM()也可以用来合计计算值。在下面的例子中,合计每项物品的 item_price*quantity,得出总的订单金额:
SELECT SUM(item_price*quantity) AS total_price
FROM OrderItems
WHERE order_num = 20005;
9.2 聚集不同值
以上 5 个聚集函数都可以如下使用。
1、对所有行执行计算,指定 ALL 参数或不指定参数(因为 ALL 是默认行 为)。
2、只包含不同的值,指定 DISTINCT 参数。(不适用于Access)
下面的例子使用 AVG()函数返回特定供应商提供的产品的平均价格。它 与上面的 SELECT 语句相同,但使用了 DISTINCT 参数,因此平均值只考 虑各个不同的价格。
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';
注:DISTINCT不能用于COUNT(*)。
9.3 组合聚集函数
目前为止的所有聚集函数例子都只涉及单个函数。但实际上,SELECT 语 句可根据需要包含多个聚集函数。请看下面的例子:
SELECT COUNT(*) AS num_items,
MIN(prod_price) AS price_min,
MAX(prod_price) AS price_max,
AVG(prod_price) AS price_avg
FROM Products;
标签:COUNT,函数,MAX,price,汇总,AVG,数据,SELECT 来源: https://www.cnblogs.com/lqsj2018/p/16380577.html