其他分享
首页 > 其他分享> > 第9课 汇总数据

第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