我有一些数据不断产生,我想知道我怎么能这样做: 每分钟它将从一分钟之前获取x记录,做出某种总结并将其放在第二个表中。 表看起来像: http://puu.sh/bvNA3/9616f1037f.png Cols:ID,ID_pistol,ID_container,start_time,stop_time,volume,brutto,netto,temperature 结果一分钟,它将是音量,bruto,netto cols和温度平均值的总和。
如果有人有任何建议,我将不胜感激。
答案 0 :(得分:1)
使用事件调度程序。假设第一个表中的ID
具有AUTO_INCREMENT
选项。然后我建议添加到第二个表last_id
列(以记录第一个表中的最后处理的ID
)。然后创建事件:
CREATE EVENT myevent
ON SCHEDULE EVERY 1 MINUTE
DO
INSERT INTO second_table(volume_sum, bruto_sum, netto_sum, temperature_avg, last_id)
SELECT SUM(f.volume), SUM(f.brutto), SUM(f.netto), AVG(f.temperature), MAX(f.ID)
FROM first_table f
WHERE f.ID > IFNULL((SELECT MAX(last_id) FROM second_table), 0);
仅在启动Event Scheduler时才有效。具有管理员权限的用户可以检查并启动它。检查:
SHOW VARIABLES like 'event_scheduler';
答案必须是ON
。如果是OFF
则运行:
SET GLOBAL event_scheduler = ON;
文档: