1

私は Reql が初めてで、単純な Sql リクエストを Reql に変換する方法を見つけようとしています (rethinkdb で python を使用しています)

Select id, min(value), max(value), avg(value)
From mytable
Group by id
Having timestamp between '2003-12-05T15:01:00.05Z' and '2003-12-05T15:05:00.05Z'

誰でも助けることができますか?

4

1 に答える 1

0

Python はわからないので、JavaScript で回答します。ダッシュボードでこれを試して、簡単に Python に変換できると思います。

まず、インデックスを作成します。

r.table('mytable').indexCreate('timestamp')

そのインデックスを使用betweenして、データをフィルタリングし、次のようにグループ化できます。

r
  .table('mytable')
  .between(r.time(2013, 12, 5, 15, 1, 0, 'Z'),
           r.time(2013, 12, 5, 15, 5, 0, 'Z'),
           {index: 'timestamp'})
  .group('id')
  .ungroup()
  .map(function(doc) {
    return 
      {
        id: doc('group'),
        min: doc('reduction')('value').min(),
        max: doc('reduction')('value').max(),
        avg: doc('reduction')('value').avg(),
      }
  })
于 2016-05-17T04:52:36.540 に答える