希望对大量数据执行平均计算。数据经常从设备中获取,我们希望获得最后一天的平均值、上周的平均值、上个月的平均值和去年的平均值。
不幸的是,取去年数据的平均值需要几分钟才能完成。我只有 SQL 的基本知识,希望这里有一些好的信息可以加快速度。
该表有一个时间戳、一个标识数据属于哪个设备的 ID 和一个浮点数据值。
我一直在使用的查询遵循这个一般示例:
select avg(value)
from table
where id in(1,2,3,4) timestamp > last_year
编辑:我还应该澄清他们要求滚动计算这些平均值。如“年初至今”的平均值。我确实意识到,仅仅由于结果数量庞大,我们可能不得不妥协。