小编Ben*_*ess的帖子

如何根据前一天的值更新值?

我有一个 MySQL 数据库临时表,其中包含一堆针对系统 ID 和日期(它们组合构成主键)的仪表读数。

某些条目的仪表读数为 NULL,在这种情况下,它们需要更新以具有与前一天相同的仪表读数。

还有一个“差异”列,需要有当天读数和前一天读数之间的差异。

我知道如何使用代码更新表,我想知道是否有使用 SQL 的好方法。多个查询很好(我猜在计算差异之前至少需要更新 NULL 读数)。

这是一个带有假数据的示例架构,也在这个 sqlfiddle 中

CREATE TABLE Readings (`SystemID` INT, `ReadingDate` DATE, `Reading` INT NULL, `Diff` INT NULL, PRIMARY KEY(`SystemID`,`ReadingDate`));

INSERT INTO Readings VALUES 
(1, '2021-02-01', 24, NULL), 
(1, '2021-02-02', 26, NULL), 
(1, '2021-02-03', 23, NULL), 
(1, '2021-02-04', NULL, NULL), 
(1, '2021-02-05', NULL, NULL), 
(1, '2021-02-06', 28, NULL), 
(1, '2021-02-07', 21, NULL),
(2, '2021-02-01', 124, NULL), 
(2, '2021-02-02', 126, NULL), 
(2, '2021-02-03', 123, NULL), 
(2, '2021-02-04', NULL, …
Run Code Online (Sandbox Code Playgroud)

mysql query mysql-5.7

2
推荐指数
1
解决办法
125
查看次数

标签 统计

mysql ×1

mysql-5.7 ×1

query ×1