RethinkDB - 如何按聚合时间间隔进行分组

时间:2015-05-15 22:41:57

标签: aggregate rethinkdb

我想对动态时间间隔进行分组和平均。类似的问题:Grouping into interval of 5 minutes within a time range

现在,我正在使用查询:

r.db('windMachine').table('stats3')
  .between(r.time(2015, 5, 7, 18, 0, 0, "Z"), r.time(2015, 5, 7, 24, 0, 0, "Z"), {index: "date"})
  .group([r.row("date").hours(), r.row("date").minutes()])
  .avg("TMP0")

返回:

[
  {
    "group": [
      21,
      2
    ],
    "reduction": 22.802153846153846
  },
  {
    "group": [
      21,
      3
    ],
    "reduction": 22.6628
  },
  {
    "group": [
      21,
      4
    ],
    "reduction": 22.384324324324318
  }
]

我想进一步分组,分为5分钟(或其他)间隔。这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

我实际上遇到了类似的问题,这就是我所做的:

.group(r.row('date').toEpochTime().sub(r.row('date').toEpochTime().mod(<INTERVAL_IN_SECONDS>))

这样做的目的是按<INTERVAL_IN_SECONDS>

分组时间

我不知道这是否是完成任务的最佳方式,但它对我有用。