要求某个字段的历史累计值,需要使用 MySQL 的用户定义变量和子查询。以下是一个示例查询:
SELECT
t1.id,
t1.value,
@sum := @sum + t1.value AS cumulative_value
FROM
my_table t1,
(SELECT @sum := 0) t2
ORDER BY
t1.id;
在这个查询中,我们将 my_table 表连接到一个包含用户定义变量 @sum 的子查询中。然后,我们使用 @sum 来计算当前行之前所有行的累计值,并将其命名为 cumulative_value。
请注意,此查询假定每行都有唯一的 id 值。如果您的表中没有这样的列,请将 ORDER BY 子句替换为基于时间戳或其他适当字段的排序。




