我正在尝试将电子表格复制到数据库中,我很难理解如何只对当前行上方的行进行求和,就像我在excel中所做的那样。例如,一列的公式如下:
=SUM($B$9:$B9)/SUM($E$9:$E9)
=SUM($B$9:$B10)/SUM($E$9:$E10)
=SUM($B$9:$B11)/SUM($E$9:$E11)
....等等。
我需要以某种方式在我的选择qry中重现这个公式,但不确定如何?
SELECT Column1,Column2, SUM(Column1) + SUM(Column2) as Expr1
From tblTest
Group By Column1,Column2
有什么想法吗?
Col1 Col2 Col3 Total Col1/Total Trying to get this
7 0 3 10 70.00% 70.00%
1 0 1 100.00% 72.73%
2 0 4 6 33.33% 58.82%
3 1 1 5 60.00% 59.09%
答案 0 :(得分:2)
诀窍是你想使用一个子查询来识别所有以前的行。
SELECT ID,
(
SELECT SUM(ValueColumn)
FROM Test T2
WHERE T2.ID <= T1.ID
) RunningSum
FROM
Test T1
ORDER BY
T1.ID
这会奏效。如果您有一个大型数据集,您可能只想选择数据并在应用程序中进行计算,因为您可以保持运行总和,因为您可以比此查询更有效地循环遍历数据。