本文共 2778 字,大约阅读时间需要 9 分钟。
在 SQL 中,聚合函数是用来对数据集中的数据进行统计和计算的函数。这些函数可以帮助我们快速地获取数据集的总体特征,如平均值、总数、最大值、最小值等。常见的聚合函数包括 avg()、count()、first()、last()、max()、min() 和 sum()。以下将详细介绍这些函数的用法和实例。
AVG() 函数用于返回一个数值列的平均值。需要注意的是,AVG() 函数会忽略 NULL 值。
SELECT AVG(column_name) FROM table_name
假设我们有如下 "Orders" 表:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/12/29 | 1000 | Bush |
| 2 | 2008/11/23 | 1600 | Carter |
| 3 | 2008/10/05 | 700 | Bush |
| 4 | 2008/09/28 | 300 | Bush |
| 5 | 2008/08/06 | 2000 | Adams |
| 6 | 2008/07/21 | 100 | Carter |
示例 1:计算 "OrderPrice" 列的平均值
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
结果如下: | OrderAverage | |--------------| | 950 |
示例 2:查找 OrderPrice 值高于平均值的客户
SELECT Customer FROM Orders WHERE OrderPrice > (SELECT AVG(OrderPrice) FROM Orders)
结果如下: | Customer | |-----------| | Bush | | Carter | | Adams |
COUNT() 函数用于返回匹配指定条件的行数。COUNT() 可以接受列名作为参数,也可以省略,表示返回表中记录的总数。
NULL 值的数量: SELECT COUNT(column_name) FROM table_name
SELECT COUNT(*) FROM table_name
SELECT COUNT(DISTINCT column_name) FROM table_name
示例 1:查找客户 "Carter" 的订单数
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer = 'Carter'
结果如下: | CustomerNilsen | |----------------| | 2 |
示例 2:返回表中总记录数
SELECT COUNT(*) AS NumberOfOrders FROM Orders
结果如下: | NumberOfOrders | |---------------| | 6 |
示例 3:返回不同客户的数量
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders
结果如下: | NumberOfCustomers | |------------------| | 3 |
FIRST() 函数返回指定列中第一个记录的值。可以使用 ORDER BY 语句对记录进行排序后再使用该函数。
SELECT FIRST(column_name) FROM table_name
示例:查找 "OrderPrice" 列的第一个值
SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders
结果如下: | FirstOrderPrice | |----------------| | 1000 |
LAST() 函数返回指定列中最后一个记录的值。同样可以使用 ORDER BY 语句对记录进行排序后再使用该函数。
SELECT LAST(column_name) FROM table_name
示例:查找 "OrderPrice" 列的最后一个值
SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders
结果如下: | LastOrderPrice | |---------------| | 100 |
MAX() 函数返回一列中的最大值。NULL 值会被忽略。
SELECT MAX(column_name) FROM table_name
示例:查找 "OrderPrice" 列的最大值
SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders
结果如下: | LargestOrderPrice | |------------------| | 2000 |
MIN() 函数返回一列中的最小值。NULL 值会被忽略。
SELECT MIN(column_name) FROM table_name
示例:查找 "OrderPrice" 列的最小值
SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders
结果如下: | SmallestOrderPrice | |--------------------| | 100 |
SUM() 函数用于返回数值列的总和。
SELECT SUM(column_name) FROM table_name
示例:计算 "OrderPrice" 列的总和
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders
结果如下: | OrderTotal | |-------------| | 5700 |
以上就是 SQL 中常用的一些聚合函数的介绍和实例。如果需要更深入的学习,可以参考相关的 SQL 文档或教程。
转载地址:http://qzvfk.baihongyu.com/