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