LoginSignup
0
0

More than 5 years have passed since last update.

riak-ts SELECT関連のクエリサンプル

Last updated at Posted at 2018-01-06

概要

  • 検索時に使いそうなriak-tsのクエリのメモ

SQL

  • 他のDBと同じでSELECTでデータの参照を行う
  • WHEREでキーにしている時間の範囲を指定する必要がある
  • サブクエリとかややこしいGROUP BYとかしなくていいのですごく楽
  • 早い

時間指定で参照

> SELECT * FROM Hoge WHERE time < 1515254386 AND time > 1515250386;
  • 参照しようとするカラムが多いと省略して表示される
> SELECT time, column_1 FROM Hoge WHERE time < 1515254386 AND time > 1515250386;
  • カラム指定できる
  • asはできない

時間 + カラム指定で参照

> SELECT * FROM Hoge WHERE time < 1515254386 AND time > 1515250386 AND column_1 = 'fuga';
  • 特定の範囲の時間に特定のデータを持つrowを取得できる
  • この辺までは他のDBと一緒

特定の範囲内の最新のrowを参照

> SELECT max(time), column_1 FROM Hoge WHERE time < 1515254386 AND time > 1515250386 AND column_1 = 'fuga';
  • SELECTでmax(time)すると最新のtimeを持つrowのみを参照できる

特定の範囲のrowの数を取得する

  • 上記のと組み合わせてrowの数を取得できる
> SELECT max(time), column_1, count(time) FROM Hogehoge WHERE time < 1515254386 AND time > 1515250386 AND column_1 = 'fuga';
  • COUNTが使える

特定の範囲のrowの特定のカラムの積算、平均を求める

  • 上記のと組み合わせてrowのカラムの積算と平均を求めることもできる
> SELECT max(time), column_1, count(time), sum(column_2), avg(column_2) FROM Hogehoge WHERE time < 1515254386 AND time > 1515250386 AND column_1 = 'fuga';
  • 使えるのはSUM, AVG
  • 使用できる関数はhelp sql selectで見れる

GROUP BYでまとめて取得

  • 複数のデータを集計して取得したい場合はGROUP BYを使う
> SELECT id, AVG(column_1) FROM Hogehoge WHERE time < 1515254386 AND time > 1515250386 GROUP BY id;
  • GROUP BYも使える
  • LIMIT OFFSET, ORDER BYなどもある
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0