在 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;
ID | SALARY | NAME | DEPT_ID |
---|---|---|---|
1 | 34000 | ANURAG | UI DEVELOPER |
2 | 33000 | HARSH | BACKEND DEVELOPERS |
3 | 36000 | SUMIT | BACKEND DEVELOPERS |
4 | 36000 | RUHI | UI DEVELOPER |
5 | 37000 | KAE | UI 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
输出:ID SALARY NAME DEPT_ID Running Total 1 34000 ANURG UI DEVELOPER 34000 2 33000 HARSH BACKEND DEVELOPERS 67000 3 36000 SUMIT BACKEND DEVELOPERS 103000 4 36000 RUHI UI DEVELOPER 139000 5 37000 KAE UI DEVELOPER 176000
在 SQL Server Management Studio 中选择:
示例 2
在此 SQL Server 示例中,我们将使用 SUM函数和 OVER 来查找运行总计。
SQL Server 中计算运行总数的查询
SELECT *
,SUM([SALARY]) OVER (
ORDER BY [ID]
) AS [Running Total]
FROM department
输出:ID SALARY NAME DEPT_ID Running Total 1 34000 ANURAG UI DEVELOPER 34000 2 33000 HARSH BACKEND DEVELOPERS 67000 3 36000 SUMIT BACKEND DEVELOPERS 103000 4 36000 RUHI UI DEVELOPER 139000 5 37000 KAE UI DEVELOPER 176000
在 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
输出:ID SALARY NAME DEPT_ID Running_Total 2 33000 HARSH BACKEND DEVELOPERS 33000 3 36000 SUMIT BACKEND DEVELOPERS 69000 1 34000 ANURAG UI DEVELOPER 34000 4 36000 RUHI UI DEVELOPER 70000 5 37000 KAE UI DEVELOPER 107000
在 SQL Server Management Studio 中选择: