LoginSignup
2
0

Tips: BigQueryで直近の期間で絞り込みたい時は*_SUB関数が便利

Posted at

この記事は何

TreasureDataには以下のようなTD_INTERVALという、直近の機関による絞り込みを行う関数が存在します。

SELECT *
FROM example_tables
WHERE TD_INTERVAL(time, '-30d/now', 'JST') -- 直近30日のデータを絞り込む

BigQueryにはこのような関数は存在しないため、BETWEENを用いてクエリを書く必要があります。
この時に、*_SUB関数を使うと簡単に書けるよ、という記事です。

*_SUB関数とは

*_SUB関数とは、日時系の時間の引き算を行える関数です。
DATE型、DATETIME型、TIMESTAMP型、色々な型に対応した関数が用意されています。

この*_SUB関数を用いると、以下のような書き方で直近〇〇日のデータを出すことができます。
DATETIME型を用いる場合は以下のように書けます。

SELECT *
FROM example_tables
WHERE time BETWEEN DATETIME_SUB(DATETIME_TRUNC(CURRENT_DATETIME('Japan'), DAY), INTERVAL 30 DAY) AND CURRENT_DATETIME('Japan') -- 直近30日のデータを絞り込む

クエリ内で用いているDATETIME_TRUNC関数は、時間の丸め込みを行う関数です。

2
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
2
0