博客
关于我
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
阅读量:796 次
发布时间:2023-02-26

本文共 2778 字,大约阅读时间需要 9 分钟。

SQL 聚合函数(Aggregate Functions):avg、count、first、last、max、min、sum

在 SQL 中,聚合函数是用来对数据集中的数据进行统计和计算的函数。这些函数可以帮助我们快速地获取数据集的总体特征,如平均值、总数、最大值、最小值等。常见的聚合函数包括 avg()count()first()last()max()min()sum()。以下将详细介绍这些函数的用法和实例。


avg() 函数

定义和用法

AVG() 函数用于返回一个数值列的平均值。需要注意的是,AVG() 函数会忽略 NULL 值。

SQL 语法

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() 函数用于返回匹配指定条件的行数。COUNT() 可以接受列名作为参数,也可以省略,表示返回表中记录的总数。

SQL 语法

  • 返回指定列的非 NULL 值的数量:
    SELECT COUNT(column_name) FROM table_name
  • 返回表中记录的总数:
    SELECT COUNT(*) FROM table_name
  • 返回指定列中不同值的数量(适用于 Oracle 和 Microsoft SQL Server):
    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() 和 last() 函数

    first() 函数

    FIRST() 函数返回指定列中第一个记录的值。可以使用 ORDER BY 语句对记录进行排序后再使用该函数。

    SQL 语法

    SELECT FIRST(column_name) FROM table_name

    实例

    示例:查找 "OrderPrice" 列的第一个值

    SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

    结果如下: | FirstOrderPrice | |----------------| | 1000 |


    last() 函数

    LAST() 函数返回指定列中最后一个记录的值。同样可以使用 ORDER BY 语句对记录进行排序后再使用该函数。

    SQL 语法

    SELECT LAST(column_name) FROM table_name

    实例

    示例:查找 "OrderPrice" 列的最后一个值

    SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders

    结果如下: | LastOrderPrice | |---------------| | 100 |


    max() 和 min() 函数

    max() 函数

    MAX() 函数返回一列中的最大值。NULL 值会被忽略。

    SQL 语法

    SELECT MAX(column_name) FROM table_name

    实例

    示例:查找 "OrderPrice" 列的最大值

    SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

    结果如下: | LargestOrderPrice | |------------------| | 2000 |


    min() 函数

    MIN() 函数返回一列中的最小值。NULL 值会被忽略。

    SQL 语法

    SELECT MIN(column_name) FROM table_name

    实例

    示例:查找 "OrderPrice" 列的最小值

    SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

    结果如下: | SmallestOrderPrice | |--------------------| | 100 |


    sum() 函数

    定义和用法

    SUM() 函数用于返回数值列的总和。

    SQL 语法

    SELECT SUM(column_name) FROM table_name

    实例

    示例:计算 "OrderPrice" 列的总和

    SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

    结果如下: | OrderTotal | |-------------| | 5700 |


    以上就是 SQL 中常用的一些聚合函数的介绍和实例。如果需要更深入的学习,可以参考相关的 SQL 文档或教程。

    转载地址:http://qzvfk.baihongyu.com/

    你可能感兴趣的文章
    Oracle中常用的语句
    查看>>
    Oracle中序列的操作以及使用前对序列的初始化
    查看>>
    oracle中新建用户和赋予权限
    查看>>
    Oracle中的NVL,NVL2,NULLIF以及COALESCE函数使用
    查看>>
    Oracle中的rownum 和rowid的用法和区别
    查看>>
    oracle中的大小写、字符、dual、数字、处理、日期、函数、显/隐式、时间、条件表达式case、decode、to_date、to_char、sysdate
    查看>>
    oracle中表和视图的区别,oracle中常用表和视图
    查看>>
    oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
    查看>>
    Oracle从11g导出后导入10g
    查看>>
    oracle从备份归档日志的方法集中回收
    查看>>
    oracle优化器analyzed,Oracle 学习之 性能优化(十三) 索引
    查看>>
    Oracle修改字段类型
    查看>>
    Oracle修改表或者字段的注释
    查看>>
    oracle典型安装失败,安装oracle 10失败
    查看>>
    Oracle内存结构详解(四)--Oracle SGA其他组成部分
    查看>>
    Oracle函数与存储过程和程序包
    查看>>
    Oracle分析函数之LEAD和LAG
    查看>>
    Oracle分组取前n条记录
    查看>>
    Oracle分页sql
    查看>>
    Oracle创建database link(dblink)和同义词(synonym)
    查看>>