我正在尝试查询一个表并计算其他两个列的成对组合的列值的运行总和。
具体来说,给定下表:
CREATE TABLE test (
bucket int(10) NOT NULL,
label varchar(10) NOT NULL,
amount int(10) NOT NULL
);
INSERT INTO test VALUES
(1, "A", 1),
(1, "B", 2),
(1, "C", 3),
(2, "A", 4),
(2, "B", 5),
(2, "C", 6),
(3, "A", 7),
(3, "B", 8),
(3, "C", 9),
(4, "A", 10),
(4, "B", 11),
(4, "C", 12);
我想查询一个计算每个桶/标签对的累积总和的列。
换句话说,我希望能够编写一个查询来选择存储桶、标签和第三列,该第三列是每个条目的“金额”列的累积总和,其标签与该行的标签匹配。例如,对于上面的示例,第三列应具有以下值:
1,
2,
3,
5,
7,
9,
12,
15,
18,
22,
26,
30
换句话说,值 5 是 1 和 4 的总和(“A”标签的前两个数量),值 7 是 2 和 5 的总和(“B”标签的前两个数量),等等
我知道我可以通过执行以下操作来获得整个列的累积总和:
SELECT
*,
SUM(amount) OVER (
ORDER BY amount
) AS running_total
FROM test
但我不确定如何按标签拆分。
任何帮助深表感谢!