SQL AVG() 函数
                           
天天向上
发布: 2025-02-16 07:08:57

原创
841 人浏览过

学习 SQL 函数是掌握 SQL 关键部分之一。 AVG() 函数是聚合函数之一,用于计算某个字段的平均值。接下来让我们一步一步地深入理解这个函数,并通过实际例子来说明它的用法。

1. AVG() 函数简介

AVG() 函数返回选定列的平均值,通常用于数字类型字段。它会自动忽略 NULL 值。

2. 基本语法

SELECT AVG(column_name)
FROM table_name
WHERE condition;
  • column_name:你想要计算平均值的列。
  • table_name:数据表的名字。
  • condition:可选,用于过滤数据的条件。

3. 示例 1:计算工资的平均值

假设你有一个员工表 employees,包含以下字段:

employee_idnamesalary
1Tom5000
2Jane6000
3Bob7000
4Alice8000
5Mike5500

你可以使用 AVG() 来计算所有员工的平均工资:

SELECT AVG(salary) AS avg_salary
FROM employees;

输出:

avg_salary
6300

4. 示例 2:计算特定部门的平均工资

假设表中还有一个 department 字段,记录员工所属的部门。你想计算某个部门的平均工资。例如,计算 “Sales” 部门员工的平均工资:

SELECT AVG(salary) AS avg_salary
FROM employees
WHERE department = 'Sales';

5. 示例 3:使用 AVG() 结合 GROUP BY

有时,你可能需要按某个分类进行分组并计算每个组的平均值。比如,计算每个部门的平均工资:

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

输出:

departmentavg_salary
Sales6000
HR7000
IT7500

6. 示例 4:排除 NULL

AVG() 函数会自动忽略 NULL 值。如果某些员工的工资字段是 NULL,它们不会影响结果。假设员工表中有些 salaryNULL

SELECT AVG(salary) AS avg_salary
FROM employees
WHERE salary IS NOT NULL;

这将计算所有非 NULL 工资的平均值。

7. 进阶用法

你还可以将 AVG() 函数与其他函数结合使用,例如使用 CASE 来进行条件判断:

SELECT 
  department,
  AVG(CASE WHEN salary > 6000 THEN salary END) AS avg_high_salary
FROM employees
GROUP BY department;

这个例子计算了每个部门工资大于 6000 的员工的平均工资。


这些示例展示了 AVG() 函数的基本和进阶用法,可以应用于多种实际场景。

发表回复 0

Your email address will not be published. Required fields are marked *