第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;