sql中的sum函数的用法
在 SQL 中,
SUM函数用于计算数值列的总和。它常用于聚合查询中,尤其是在结合GROUP BY子句时,来统计分组的总和。以下是SUM函数的详细用法和示例:
基本语法
SELECT SUM(column_name)
FROM table_name
[WHERE condition];
用法示例
1. 计算一列的总和
SELECT SUM(salary) AS total_salary
FROM employees;
这段代码会返回 employees 表中所有员工的 salary 总和。
2. 配合 WHERE 子句
SELECT SUM(salary) AS total_salary
FROM employees
WHERE department_id = 101;
这段代码会返回部门编号为 101 的所有员工的薪资总和。
3. 配合 GROUP BY 子句
SELECT department_id, SUM(salary) AS total_salary
FROM employees
GROUP BY department_id;
这段代码会按部门分组,计算每个部门的薪资总和。
4. 处理重复值 (DISTINCT)
如果希望只统计某列中唯一值的总和,可以使用 DISTINCT 关键字:
SELECT SUM(DISTINCT salary) AS unique_salary_total
FROM employees;
这段代码会计算 salary 列中唯一值的总和。
5. 配合其他聚合函数
SUM 通常与其他聚合函数一起使用,例如 AVG、MAX、MIN 等:
SELECT SUM(salary) AS total_salary, AVG(salary) AS avg_salary
FROM employees;
注意事项
- 非数值列:
SUM只能对数值列进行计算,使用在非数值列上会报错。
NULL值的处理:
SUM会自动忽略列中的NULL值。- 如果需要确保某列不会因
NULL值影响结果,可以使用COALESCE将NULL替换为 0:sql SELECT SUM(COALESCE(salary, 0)) AS total_salary FROM employees;
- 结果列名:
- 默认情况下,
SUM返回的列名可能是函数本身(如SUM(salary)),可以使用AS设置更友好的别名。
综合示例
假设有一个 orders 表:
order_id customer_id amount
1 101 500
2 102 300
3 101 700
4 103 NULL
5 102 200
示例查询
- 计算总订单金额:
SELECT SUM(amount) AS total_amount
FROM orders;
结果:1500
- 按客户分组计算订单金额:
SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id;
结果:
customer_id total_amount
101 1200
102 500
103 0
如果有更多的应用场景或问题,可以随时告诉我!
#库存管理 #数据分析 #财务表报