9.聚合函数(多行函数)

聚合函数简介

简介

聚合函数也称之为多行函数,组函数或者分组函数。

聚合函数不像单行函数,聚合函数对行的分组进行操作,对每组给出一个结果,

如果在查询中没有分组,那么聚合函数将所有查询到的结果分到一组。

聚合函数类型
  • AVG()
  • COUNT()
  • MAX()
  • MIN()
  • SUM()
基本语法
SELECT [* | <colimn_name>[,...]] , GROUP FUNTION(column_name)
FROM <table_name>
[WHERE condition]
[GROUP BY <column_name>]
[ORDER BY <column_name>]
使用的原则
  • DISTINCT 使得函数只考虑不重复的值
  • 所有聚合函数忽略空值,为了用一个值代替空值,用ISNULL或COALESCE函数

聚合函数

函数 描述 示例
AVG(expression) 返回一个表达式的平均值 SELECT AVG(Price) AS AveragePrice FROM Products;
SUM(expression) 返回指定字段的总和 SELECT SUM(Qty) AS TotalItemsOrdered FROM OrderDetails;
MAX(expression) 返回字段中的最大值 SELECT MAX(Price) AS LargestPrice FROM Products;
MIN(expression) 返回字段中的最小值 SELECT MIN(Price) AS MinPrice FROM Products;
COUNT(expression) 返回查询的记录总数 SELECT COUNT(ProductID) AS NumberOfProducts FROM Products;
AVG()函数
  1. 对分组进行平均值计算

  2. arg:参数只能是数字类型,字符类型会返回0

SUM()函数
  1. 对分组进行求和运算
  2. arg:参数只能是数字类型,字符类型会返回0
MAX()函数
  1. 对分组数据查找最大值
  2. arg:
    • 数字类型:找最大值
    • 字符类型:找最大字母,升序排序中的第一个
    • 日期类型:找最晚的日期
MIN()函数
  1. 对分组数据查找最小值
  2. arg:
    • 数字类型:找最小值
    • 字符类型:找最小字母
    • 日期类型:找最早的日期
COUNT()函数
  1. COUNT(*):返回所有列的行数,包括重复、空值
  2. COUNT(expr):返回非空值的计数
  3. COUNT(DISTINCT expr):返回列中不重复的行的计数

数据分组(GROUP BY)

单列分组

语法:

SELECT ... FROM ... WHERE ... 
GROUP BY ... ORDER BY ...

在没有进行数据分组前,所有聚合函数是将结果集作为一个大的信息组进行分组进行处理。但有时需要用较小的组,用GROUP BY实现。

使用原则:

  • 使用WHERE子句,可以在划分行成组以前进行过滤
  • 如果有WHERE子句,那GROUP BY 在WHERE后面
  • 在GROUP BY子句中必须包括列
多列分组
SELECT department_id,job_id,SUM(salary)
FROM employees
GROUP BY department_id,job_id;

上面这个代码是先将部门id进行分组,之后在部门id分组之后的结果继续进行岗位的分组。

用having约束分组结果

having是对GROUP BY分组后的结果再进行过滤。

SELECT department_id,MAX(salary)
FROM employees
GROUP BY department_id
HAVING MAX(salary)>10000;
posted @ 2022-01-19 19:06  只强  阅读(249)  评论(0编辑  收藏  举报