我有一个MySLQ DB,其中包含以这种方式构建的天气数据:
DATA TEMP UM RAIN
2017-05-16 10:00 13.2 80 0.0
2017-05-16 10:05 13.1 81 0.1
....
2017-05-16 23:55 2.1 90 0.5
2017-05-17 00:00 2.1 91 0.0
2017-05-17 00:05 2.1 91 0.5
我需要在每天积累的累积雨中填充另一列,如下所示:
DATA TEMP UM RAIN TOT_RAIN
2017-05-16 10:00 13.2 80 0.0 2.2
2017-05-16 10:05 13.1 81 0.1 2.3
....
2017-05-16 23:55 2.1 90 0.5 12.3
2017-05-17 00:00 2.1 91 0.0 0.0
2017-05-17 00:05 2.1 91 0.5 0.5
我试过这个查询,它有效:
UPDATE `alldata` t1
INNER JOIN
(
SELECT DateTime,@r := IF(TIME(DateTime) >= '00:00:00' AND < '00:05:00', R_OLD, R_OLD + @r) R
FROM `alldata`
CROSS JOIN (SELECT @r := 0.0) AS R
ORDER BY DateTime
) t2 ON t1.DateTime = t2.DateTime
SET t1.R = t2.R
但是当新日期的时间不等于00:00(这可能是00:01,如01:05或03:00)时,查询失败,并且计数器不会重置为零。 我需要当天的最后一个数据包含每日下雨的总数,并且新一天的第一个数据等于零。 有什么帮助吗?