我正在数据库中存储数据,如下所示。
Emp_id Ename Sal
11 AAA 10
22 BBB 20
33 CCC 30
44 DDD 60
然后我要填充一个新列,如下所示。
Emp_id Ename Sal New_column
11 AAA 10 10 --> 10+0
22 BBB 20 30 --> 10+20
33 CCC 30 60 --> 10+20+30
44 DDD 60 120 --> 10+20+30+60
谢谢您的协助!
答案 0 :(得分:2)
只要您的RDBMS不支持分析功能(例如,因为您使用的是MySQL 5.7或更早版本),我们还可以使用相关子查询来查找运行总计:
SELECT
Emp_id,
Ename,
Sal,
(SELECT SUM(t2.Sal) FROM yourTable t2 WHERE t2.Emp_id <= t1.Emp_id) AS New_column
FROM yourTable t1
ORDER BY
Emp_id;
答案 1 :(得分:0)
我想你想要连续的金额。如果您的数据库产品支持窗口功能,则可以尝试以下操作-
SELECT Emp_id
,Ename
,Sal
,SUM(Sal) OVER(ORDER BY EMP_ID) New_column
FROM EMPLOYEE;
答案 2 :(得分:0)
如果可以在DBMS中使用Window分析功能,请使用:
select t.*, sum(sal) over (order by emp_id) as New_column
from tab t
order by emp_id
答案 3 :(得分:0)
请在下面的查询中使用SQL Server
中正在运行的聚合。
SELECT Emp_id
,Ename
,Sal
,SUM(Sal) OVER (
ORDER BY Emp_id
) AS New_column
FROM Employee
ORDER BY Emp_Id