第9课 汇总数据
这一课介绍什么是SQL的聚集函数,如何使用他们汇总表的数据。
聚集函数
我们常常需要汇总数据而不用把他们实际检索出来。
函数 | 说 明 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |
AVG()函数
AVG()函数通过对表中函数计数并计算其列值之和,求得该列的平均值。
SELECT AVG(prod_price) AS avg_price FROM Products;
SELECT AVG(prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01';
注意:AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数。 AVG()函数忽略值为NULL的行。
COUNT()函数
COUNT()函数进行计数。可利用COUNT()确定表中行的数目或符合特定条件的行的数目。
COUNT()函数有两种使用方式:
- COUNT(*)对表中行的数目进行计数,不管表列中包含的是空值NULL还是非空值
- COUNT(column_name)对特定列中具有值的行进行计数,忽略NULL值。
SELECT COUNT(*) AS num_cust FROM Customers;
SELECT COUNT(cust_email) AS num_cust FROM Customers;
MAX()函数
MAX()函数要求指定列名。
SELECT MAX(prod_price) AS max_price FROM Products;
MAX()函数忽略值为NULL的行。
MIN()函数
与MAX()相反。
SUM()函数
SUM()用来返回指定列值的和(总计)。
SELECT SUM(item_price*quantity) AS total_price FROM OrderItems WHERE order_num = 20005;
SELECT SUM(quantity) FROM OrderItems;
聚集不同值, 使用DISTINCT关键词
SELECT AVG(DISTINCT prod_price) AS avg_price FROM Products WHERE vend_id = 'DLL01';
组合聚集函数
SELECT COUNT(*) AS num_items, MIN(prod_price) AS min_price, MAX(prod_price) AS max_price, AVG(prod_price) AS price_avg FROM Products;