数据更改时,对MySQL和重置计数器的每日数据求和

时间:2017-05-17 07:58:46

标签: mysql

我有一个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)时,查询失败,并且计数器不会重置为零。 我需要当天的最后一个数据包含每日下雨的总数,并且新一天的第一个数据等于零。 有什么帮助吗?

0 个答案:

没有答案