0
我有一个传感器,发送的数值为5分钟。这与时间戳一起被存储在表中。我使用下面的代码在过去24小时内检索该传感器的所有值。Ruby on Rails:在过去的24小时内检索每小时的值
series = sensor.raindata.all(:order => "time_stamp", :conditions => {:time_stamp => Date.today...Date.today+1})
但作为传感器,我们每5分钟更新一次,这是巨大的数据。我如何每小时抽取一个数据点?那就是我需要每小时一个传感器的值。 (我不需要每小时的平均值,每小时只有一个样本)
实现此目的最优雅的方法是什么?是否可以修改上述查询来获取这种数据?或者只有这样做才是通过后期处理'系列'数组?
感谢 Shaunak
另一种方法是按小时分组后选择“min(id)”的子选择;对于PostgreSQL:'select model。* from model where id in(通过date_trunc('hour',time_stamp)从模型组中选择min(id))by order_stamp'。尽管如此,你不得不为某些其他数据库设置“date_trunc”。 – 2012-01-18 22:16:22