Sql 从employee表中查找工资总额
我在数据库中有如下所示的数据Sql 从employee表中查找工资总额,sql,Sql,我在数据库中有如下所示的数据 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
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
然后我想填充一个新列,如下所示
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
感谢您在adavance的帮助 我想你想要的是流动金额。如果您的DB产品支持窗口功能,您可以尝试以下操作-
SELECT Emp_id
,Ename
,Sal
,SUM(Sal) OVER(ORDER BY EMP_ID) New_column
FROM EMPLOYEE;
我想你要的是流水账。如果您的DB产品支持窗口功能,您可以尝试以下操作-
SELECT Emp_id
,Ename
,Sal
,SUM(Sal) OVER(ORDER BY EMP_ID) New_column
FROM EMPLOYEE;
如果可以在DBMS中使用窗口分析功能,请使用:
select t.*, sum(sal) over (order by emp_id) as New_column
from tab t
order by emp_id
如果可以在DBMS中使用窗口分析功能,请使用:
select t.*, sum(sal) over (order by emp_id) as New_column
from tab t
order by emp_id
请使用下面的查询查询SQL Server中正在运行的聚合
请使用下面的查询查询SQL Server中正在运行的聚合
如果您的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;
如果您的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;
与窗口分析函数相关,这取决于您作为DBMS使用。请始终使用您正在使用的DBMS标记SQL请求。与窗口分析函数相关,这取决于您作为DBMS使用。请始终使用您正在使用的DBMS标记SQL请求。应添加ORDER BY子句。否则,运行总数在结果中可能看起来很奇怪。您应该添加ORDERBY子句。否则,运行总数在结果中可能看起来很奇怪。您应该添加ORDERBY子句。否则,运行总数在结果中可能看起来很奇怪。您应该添加ORDERBY子句。否则,运行总数在结果中可能看起来很奇怪。顺便说一句,这不仅限于SQL Server。这是标准的SQL,在许多数据库管理系统中都可以使用。从现在起,您可以将每个人的投票升级为代表>=15:@NagasushMakallamt顺便说一句,这并不限于SQL Server。这是标准SQL,在许多DBMS中都可用。从现在起,您可以将每个人的投票权提升为代表>=15:@NagaSushmaKallam