SQL learning - chapter9

Posted by franki on February 24, 2023

第9课 汇总数据

这一课介绍什么事 SQL 的聚集函数,如何利用它们汇总表的数据

9.1 汇集函数

  • 确定表中的行数
  • 获得表中某些行的和
  • 找出表列的最大值、最小值、平均值

SQL 聚集函数

函数 说明
AVG() 返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列的和

9.1.1 AVG() 函数

通过对表中行数计算并计算其列值之和,求得该列的平均值。

输入

SELECT AVG(prod_price) AS avg_price
FROM Products;

输出

avg_price
---------
16.133571

返回某一列的平均值,可以这样写

输入

SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = 1001;

输出

avg_price
----------
10.323333

9.1.2 COUNT() 函数

计算表中行的数目或特定条件的数目。

  • 使用 COUNT(*) 对表中的行进行计算,不忽略 NULL

  • 使用 COUNT(column) 对特定列中具有值的行进行计数,忽略 NULL

输入

SELECT COUNT(*) AS num_cust
FROM Customers;

输出

num_cust
---------
5

输入

SELECT COUNT(cust_email) AS num_cust
FROM Customers;

输出

num_cust
---------
3

9.2 聚集不同值

  • 对所有行执行计算,指定 ALL 参数或不指定参数
  • 只包含不同的值,指定 DISTRINCT 参数

输入

SELECT AVG(DISTINCT(prod_price)) AS avg_price
FROM Products
WHERE vend_id = 1001;

输出

avg_price
----------
10.323333

9.3 组合聚集函数

SELECT 语句可根据需要包含多个聚集函数。

输入

SELECT COUNT(*) AS num_items,
  MAX(prod_price) AS max_price,
  AVG(prod_price) AS avg_price,
  MIN(prod_price) AS min_price
FROM Products;

输出

num_items, max_price, avg_price, min_price
--------------------------------------------
14	55.00	16.133571	2.50

9.4 小结

聚集函数用来汇总数据。SQL 支持 5 个聚集函数,可以使用多种方法使用它们,返回所需的结果。