在 SQL 中,计算平均值通常使用 AVG() 聚合函数。下面从基础到常见场景给你说明。
SELECT AVG(列名)
FROM 表名;
示例:
计算员工表 employees 中工资的平均值
SELECT AVG(salary) AS avg_salary
FROM employees;
SELECT 部门字段, AVG(数值字段)
FROM 表名
GROUP BY 部门字段;
示例:
计算每个部门的平均工资
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;
SELECT AVG(salary) AS avg_salary
FROM employees
WHERE department_id = 10;
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 5000;
AVG() 会自动忽略 NULL 值示例:
AVG(NULL, 10, 20) → 15
不同数据库写法不同:
SELECT ROUND(AVG(salary), 2) FROM employees;
SELECT CAST(AVG(salary) AS DECIMAL(10,2)) FROM employees;
❌ 在 WHERE 中直接使用聚合函数:
WHERE AVG(salary) > 5000 -- 错误
✅ 应使用 HAVING
如果你有具体数据库(MySQL / Oracle / SQL Server)或业务场景(如移动平均、加权平均),我可以给你更精确的写法。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。