我有一个MySQL表'weather_data',其中包含以下字段:
每15分钟更新一次。 使用以下MySQL命令,我可以看到每天的最高温度值:
SELECT MAX(temperature) FROM 'weather_data' GROUP BY DAY(time)
我想要的是一个MySQL命令,它遍历我的所有数据,找到每天的最高温度,并在每一行上用当时的温度更新max_temperature字段。 因此,如果我有七天的数据,我想用max_temperature更新7行。
这可能吗?
答案 0 :(得分:0)
首先,我认为你应该在两个单独的表中存储频繁的临时和最大温度。
其次,如果你仍然喜欢你的架构,你可以这样做:
UPDATE weather_data
INNER JOIN (
SELECT MAX(temperature) as temperature, DAY(time) as date
FROM weather_data GROUP BY DAY(time)
) max_temp
ON max_temp.date = DAY(time)
SET weather_data.max_temperature = max_temp.temperature
修改强>
如果您想使用两种表格方法,我建议您使用以下表格:
<强> weather_data:强>
<强> max_daily_temperature:强>
至于插入:我认为你已经处理过weather_data,但是对于max_daily_temperature,它会是这样的:
INSERT INTO max_daily_temperature
SELECT DATE(time), MAX(temperature)
FROM weather_data
WHERE DATE(time) = '2017-08-30'
和更新:
UPDATE max_daily_temperature
SET max_temperature = (
SELECT MAX(temperature)
FROM weather_data
WHERE DATE(time) = '2017-08-30'
)
WHERE date = '2017-08-30'
如果这是您所期待的,请不要忘记将答案标记为解决方案。