汇总MySQL数据库中的单行值

时间:2017-05-16 12:44:06

标签: php mysql

我有一个带有一些天气数据的MySQL数据库,结构如下:

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

对于每个步骤间隔(5分钟),我都有一些数据。雨的价值是这些步骤累积的总量。 我需要的是一个新的列,每日渐进值从00:00到23:55。在最后的每日数据(23:55)中,我必须在当天有总降雨量,而在00:00,柜台必须从0.0开始。例如:

DATA                TEMP    UM  RAIN
2017-05-16 10:00    13.2    80  2.1
2017-05-16 10:05    13.1    81  2.2
....
2017-05-16 23:55    2.1     90  12.2
2017-05-17 00:00    2.1     91  0.0
2017-05-17 00:05    2.1     91  0.5

我需要最好的解决方案,在PHP中或直接在MySQL中执行此操作。感谢

1 个答案:

答案 0 :(得分:3)

您可以使用变量在单个SQL查询中执行此操作:

SELECT DATA, TEMP, UM,
       @r := IF(TIME(DATA) = '00:00:00', RAIN, RAIN + @r)
FROM mytable 
CROSS JOIN (SELECT @r := 0.0) AS v
ORDER BY DATA;

查询使用TIME以便从日期时间字段中提取时间部分。

Demo here