本章介绍SQL的聚集函数以及利用它们汇总表的数据
1. 聚集函数(aggregate function)
:运行在行组上,计算和返回单个值的函数。
2. AVG()函数
SELECT AVG(prod_price) AS avg_price
FROM Products;
SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';
注意:
1) AVG()函数只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个AVG()函数;
2) AVG()函数忽略列值为NULL的行
3. COUNT()函数
有两种使用方式:
1) 使用COUNT(*)对表中行的数目进行计算,不管表列中包含的是空值(NULL)还是非空值;
2) 使用COUNT(column)对特定列中具有值的行进行计数,忽略NULL值。
SELECT COUNT(*) AS num_cust
FROM Customers;
SELECT COUNT(cust_email) AS num_cust
FROM Customers;
4. MAX()函数
SELECT MAX(prod_price) AS max_price
FROM Products;
MAX()函数可用于文本数据,忽略NULL值
5. MIN()函数
用法与MAX()函数相同
6. SUM()函数
SELECT SUM(quantity) AS items_ordered
FROM OrderItems
WHERE order_num = 20005;
SELECT SUM(item_price*quantity) AS total_price
FROM OrderItems
WHERE order_num = 20005;
7. 聚集不同值
使用DISTINCT排除相同值,在Access中不支持
SELECT AVG(DISTINCT prod_prices) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';
如多项具有相同值,则在计算时只取一次
8.组合聚集函数
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;