如何编写一个查询,在 SQL Server 中使用示例计算累计总计。对于这个经常被问到的面试问题,我们将使用下面展示的数据。

计算累计总计示例
在此示例中,我们将向您展示如何使用 子查询 来查找累计总计。
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,(
SELECT SUM(CUST2.[YearlyIncome])
FROM [NewCustomers] AS CUST2
WHERE CUST2.[CustID] <= CUST1.[CustID]
) AS [Running Total]
FROM [NewCustomers] AS CUST1

此示例显示如何使用 JOIN、GROUP BY 和 ORDER BY 子句来计算累计总计。
SELECT CUST1.[CustID]
,CUST1.[FirstName]
,CUST1.[LastName]
,CUST1.[Education]
,CUST1.[Occupation]
,CUST1.[YearlyIncome]
,SUM(CUST2.[YearlyIncome]) AS [Running Total]
FROM [NewCustomers] AS CUST1,
[NewCustomers] AS CUST2
WHERE CUST2.[CustID] <= CUST1.[CustID]
GROUP BY CUST1.[CustID]
,CUST1.[FirstName]
,CUST1.[LastName]
,CUST1.[Education]
,CUST1.[Occupation]
,CUST1.[YearlyIncome]
ORDER BY CUST1.[CustID]

在此 Server 示例中,我们将使用 SUM 函数和 OVER 来查找累计总计。
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,SUM([YearlyIncome]) OVER (
ORDER BY [CustID]
) AS [Running Total]
FROM [NewCustomers]
并且更传统的方法是
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,SUM([YearlyIncome]) OVER (
ORDER BY [CustID] ROWS UNBOUNDED PRECEDING
) AS [Running Total]
FROM [NewCustomers]

评论已关闭。