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子句一
起使用,可以对每个分组应用这些函数,从而得到更加详细和有用的结果。
发布评论