概要
- 検索時に使いそうな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などもある