2024年4月28日发(作者:)

SQL分组函数

在SQL中,分组函数(Group Functions)是一类用于对数据进行聚合操作的函数。

它们将多个行作为输入,根据指定的条件对这些行进行分组,并对每个分组应用聚

合函数来计算结果。这些函数通常用于SELECT语句的SELECT子句或HAVING子句

中。

SQL中的常见分组函数包括:COUNT、SUM、AVG、MAX和MIN。下面将详细介绍每个

函数的定义、用途和工作方式。

1. COUNT函数

COUNT函数用于计算表中满足指定条件的行数。它可以接受一个参数,也可以不带

参数。如果不带参数,则返回表中所有行的数量。

定义:

COUNT(expression)

用途:

• 计算表中满足指定条件的行数。

• 统计某列非空值的数量。

• 与GROUP BY子句一起使用时,可以统计每个分组中满足条件的行数。

工作方式:

• 如果不带参数,则返回表中所有行的数量。

• 如果带有参数,则返回满足条件的行数。

示例:

-- 返回表中所有行的数量

SELECT COUNT(*) FROM table_name;

-- 返回某列非空值的数量

SELECT COUNT(column_name) FROM table_name;

-- 统计每个部门有多少员工

SELECT department, COUNT(*) FROM employees GROUP BY department;

2. SUM函数

SUM函数用于计算表中满足指定条件的行的某一列的总和。它只能用于数值型数据。

定义:

SUM(expression)

用途:

• 计算表中满足指定条件的行的某一列的总和。

• 与GROUP BY子句一起使用时,可以计算每个分组中某一列的总和。

工作方式:

• 返回满足条件的行中某一列值的总和。

示例:

-- 计算表中所有行的某一列值的总和

SELECT SUM(column_name) FROM table_name;

-- 计算每个部门员工工资总和

SELECT department, SUM(salary) FROM employees GROUP BY department;

3. AVG函数

AVG函数用于计算表中满足指定条件的行的某一列值的平均值。它只能用于数值型

数据。

定义:

AVG(expression)

用途:

• 计算表中满足指定条件的行的某一列值的平均值。

• 与GROUP BY子句一起使用时,可以计算每个分组中某一列值的平均值。

工作方式:

• 返回满足条件的行中某一列值的平均值。

示例:

-- 计算表中所有行的某一列值的平均值

SELECT AVG(column_name) FROM table_name;

-- 计算每个部门员工工资的平均值

SELECT department, AVG(salary) FROM employees GROUP BY department;

4. MAX函数

MAX函数用于计算表中满足指定条件的行的某一列值的最大值。它可以用于数值型

数据、字符型数据和日期型数据。

定义:

MAX(expression)

用途:

• 计算表中满足指定条件的行的某一列值的最大值。

• 与GROUP BY子句一起使用时,可以计算每个分组中某一列值的最大值。

工作方式:

• 返回满足条件的行中某一列值的最大值。

示例:

-- 计算表中所有行的某一列值的最大值

SELECT MAX(column_name) FROM table_name;

-- 计算每个部门员工工资的最大值

SELECT department, MAX(salary) FROM employees GROUP BY department;

5. MIN函数

MIN函数用于计算表中满足指定条件的行的某一列值的最小值。它可以用于数值型

数据、字符型数据和日期型数据。

定义:

MIN(expression)

用途:

• 计算表中满足指定条件的行的某一列值得最小值。

• 与GROUP BY子句一起使用时,可以计算每个分组中某一列值的最小值。

工作方式:

• 返回满足条件的行中某一列值的最小值。

示例:

-- 计算表中所有行的某一列值的最小值

SELECT MIN(column_name) FROM table_name;

-- 计算每个部门员工工资的最小值

SELECT department, MIN(salary) FROM employees GROUP BY department;

综上所述,SQL分组函数是用于对数据进行聚合操作的函数。它们可以计算满足条

件的行数、某一列值得总和、平均值、最大值和最小值。通过与GROUP BY子句一

起使用,可以对每个分组应用这些函数,从而得到更加详细和有用的结果。