📜  在 SQL 中计算运行总数

📅  最后修改于: 2022-05-13 01:55:03.833000             🧑  作者: Mango

在 SQL 中计算运行总数

结构化查询语言或 SQL 是一种标准的数据库语言,用于从 MySQL、Oracle 等关系数据库中创建、维护和检索数据。在本文中,我们将使用 Microsoft SQL Server。
下面我们就来看看如何获取各部门的运行工资总额。在这里,我们将首先创建一个名为“geeks”的数据库,然后在该数据库中创建一个表“department”。之后,我们将在该表上执行我们的查询。

创建数据库:

CREATE geeks;

要使用此数据库:

USE geeks;

这是我们在极客数据库中的表:

CREATE TABLE department(
ID int,
SALARY int,
NAME Varchar(20),
DEPT_ID Varchar(255));

输出:
命令成功完成。



将值添加到表中:

INSERT INTO department 
VALUES (1, 34000, 'ANURAG', 'UI DEVELOPERS');

INSERT INTO department 
VALUES (2, 33000, 'harsh', 'BACKEND DEVELOPERS');

INSERT INTO department 
VALUES (3, 36000, 'SUMIT', 'BACKEND DEVELOPERS');

INSERT INTO department 
VALUES (4, 36000, 'RUHI', 'UI DEVELOPERS');

INSERT INTO department 
VALUES (5, 37000, 'KAE', 'UI DEVELOPERS');

输出:
(1 行受影响)
(1 行受影响)
(1 行受影响)
(1 行受影响)
(1 行受影响)

在 SQL Server Management Studio 中选择:

这是我们在表中的数据:

SELECT * FROM department;
IDSALARYNAMEDEPT_ID
134000ANURAGUI DEVELOPER
233000HARSHBACKEND DEVELOPERS
336000SUMITBACKEND DEVELOPERS
436000RUHIUI DEVELOPER
537000KAEUI DEVELOPER

在 SQL Server Management Studio 中选择:

示例 1:
SQL Server 中计算运行总数的查询



SELECT * ,(
SELECT SUM(T2.[SALARY])  
 FROM [department] AS T2
       WHERE T2.[ID] <= T1.[ID]
) AS [Running Total]
FROM [department] AS T1

输出:

IDSALARYNAMEDEPT_IDRunning Total
134000ANURGUI DEVELOPER34000
233000HARSHBACKEND DEVELOPERS67000
336000SUMITBACKEND DEVELOPERS103000
436000RUHIUI DEVELOPER139000
537000KAEUI DEVELOPER176000

在 SQL Server Management Studio 中选择:

示例 2
在此 SQL Server 示例中,我们将使用 SUM函数和 OVER 来查找运行总计。
SQL Server 中计算运行总数的查询

SELECT *
    ,SUM([SALARY]) OVER (
           ORDER BY  [ID]
  ) AS [Running Total]
FROM department

输出:

IDSALARYNAMEDEPT_IDRunning Total
134000ANURAGUI DEVELOPER34000
233000HARSHBACKEND DEVELOPERS67000
336000SUMITBACKEND DEVELOPERS103000
436000RUHIUI DEVELOPER139000
537000KAEUI DEVELOPER176000

在 SQL Server Management Studio 中选择:

示例 3:
在此 SQL Server 示例中,我们将使用 PARTITION BY 和 OVER 来查找运行总计。
SQL Server 中计算运行总数的查询

SELECT *
   ,SUM([SALARY]) OVER  (
PARTITION BY DEPT_ID  ORDER BY Id
) AS [Running Total]
FROM department

输出:

IDSALARYNAMEDEPT_IDRunning_Total
233000HARSHBACKEND DEVELOPERS33000
336000SUMITBACKEND DEVELOPERS69000
134000ANURAGUI DEVELOPER34000
436000RUHIUI DEVELOPER70000
537000KAEUI DEVELOPER107000

在 SQL Server Management Studio 中选择: