Tag: generate series

在Rails + Postgres中按任意时间间隔计算记录的最佳方法

我的应用程序有一个带有时间戳事件的Events表。 我需要在每个最近的N时间间隔内报告事件的数量。 对于不同的报告,间隔可以是“每周”或“每天”或“每小时”或“每15分钟间隔”。 例如,用户可以显示他们每周,每天,每小时或每季度收到的订单数量。 1)我的偏好是动态地执行单个SQL查询(我正在使用Postgres)按任意时间间隔进行分组。 有没有办法做到这一点? 2)一种简单但丑陋的暴力方法是对按时间戳排序的开始/结束时间帧内的所有记录执行单个查询,然后使用方法手动按任意间隔构建计数。 3)另一种方法是为每个间隔向事件表添加单独的字段,并静态存储the_week the_day , the_hour和the_quarter_hour字段,这样我就可以在创建记录时(一次)取“命中”而不是每次我关于该领域的报告。 这里有什么最好的做法,因为我可以根据需要修改模型并预先存储间隔数据(尽管只需要将表宽增加一倍)?