在数据分析中,从前一行减去一个值是很常见的任务,但在处理分组数据时可能会带来挑战。MySQL 提供了一种通用的方法来解决这种情况。
为了计算每个 SN 的连续行之间的能耗差,我们使用 MySQL 的系统变量(@lastSN 和 @lastValue)以及对数据进行单次传递的查询:
SELECT EL.SN, EL.Date, EL.Value, IF(@lastSN = EL.SN, EL.Value - @lastValue, 0.00) AS Consumption, @lastSN := EL.SN, @lastValue := EL.Value FROM EnergyLog EL, (SELECT @lastSN := 0, @lastValue := 0) SQLVars ORDER BY EL.SN, EL.Date;
查询的工作原理如下:
通过使用 MySQL 变量,我们实现了一种简洁高效的解决方案,用于在分组查询中根据前一个值计算能耗。
以上是如何在分组 MySQL 查询中减去前一行的值?的详细内容。更多信息请关注PHP中文网其他相关文章!