MySQL phpMyAdmin 当前日期时间的平均值计数事件
MySQL phpMyAdmin average value counting event for current datetime
我有一个关于MySQL的疑问,我不是很熟悉,但我必须解决一个问题。我有两个 tables,即我从气象站和 avg_temp table 放置数据(温度、湿度)的统计数据,我总是需要在其中保存值的平均值在给定日期的统计数据中获得。所以我需要在 phpMyAdmin 中创建一个事件,每天从 23:55 开始,计算那天的平均温度和湿度,并将其插入 avg_temp table。
我的 table 有一些基本结构:
avg_temp table:
统计数据table:
它可能是这样的,但它对我不起作用,但我希望你能从中了解我需要完成什么。
SELECT `timestamp`,AVG(`humidity`) as avgHumid
FROM stats
GROUP BY `timestamp`
SELECT `timestamp`,AVG(`temperature_C`) as avgTemp
FROM stats
GROUP BY `timestamp`
INSERT INTO avg_temp (avg_temp, avg_humid) values('$avgTemp', '$avgHumid')
这是我找到的解决方案,它简单地解决了我遇到的问题...
SET @avgTemp = (SELECT AVG(temperature_C) AS avgTemp FROM (SELECT temperature_C FROM stats ORDER BY timestamp DESC LIMIT 144) a);
SET @avgHumid = (SELECT AVG(humidity) AS avgHumid FROM (SELECT humidity FROM stats ORDER BY timestamp DESC LIMIT 144) a);
SET @oldID = (SELECT MAX(id) FROM avg_temp ORDER BY timestamp);
SET @newID = @oldID + 1;
INSERT INTO avg_temp (id, avg_temp, avg_humid) values(@newID, @avgTemp, @avgHumid);
我有一个关于MySQL的疑问,我不是很熟悉,但我必须解决一个问题。我有两个 tables,即我从气象站和 avg_temp table 放置数据(温度、湿度)的统计数据,我总是需要在其中保存值的平均值在给定日期的统计数据中获得。所以我需要在 phpMyAdmin 中创建一个事件,每天从 23:55 开始,计算那天的平均温度和湿度,并将其插入 avg_temp table。
我的 table 有一些基本结构:
avg_temp table:
统计数据table:
它可能是这样的,但它对我不起作用,但我希望你能从中了解我需要完成什么。
SELECT `timestamp`,AVG(`humidity`) as avgHumid
FROM stats
GROUP BY `timestamp`
SELECT `timestamp`,AVG(`temperature_C`) as avgTemp
FROM stats
GROUP BY `timestamp`
INSERT INTO avg_temp (avg_temp, avg_humid) values('$avgTemp', '$avgHumid')
这是我找到的解决方案,它简单地解决了我遇到的问题...
SET @avgTemp = (SELECT AVG(temperature_C) AS avgTemp FROM (SELECT temperature_C FROM stats ORDER BY timestamp DESC LIMIT 144) a);
SET @avgHumid = (SELECT AVG(humidity) AS avgHumid FROM (SELECT humidity FROM stats ORDER BY timestamp DESC LIMIT 144) a);
SET @oldID = (SELECT MAX(id) FROM avg_temp ORDER BY timestamp);
SET @newID = @oldID + 1;
INSERT INTO avg_temp (id, avg_temp, avg_humid) values(@newID, @avgTemp, @avgHumid);