カイワレの大冒険 Third

技術的なことや他愛もないことをたまに書いてます

前日と当日のテーブルに存在するデータをBigQueryで抽出する

何日連続ログインとかそういうデータ欲しくなったときに。

こんな感じ。

SELECT
  id
FROM
  dataset.20160610
WHERE id IN
(
  SELECT
    id
  FROM TABLE_DATE_RANGE([dataset.], DATE_ADD(TIMESTAMP('2016-06-10'), -1, 'DAY'), DATE_ADD(TIMESTAMP('2016-06-10'), -1, 'DAY'))  
)

コツは、 TABLE_DATE_RANGE() を使って、第二引数と第三引数に同じ日を DATE_ADD() で渡すこと。

ちなみに、テーブル名が、 yyyymmdd だけの場合は、 [] を使わないといけないらしい。初めて知った。

まぁ、プログラム側で1日前とか出せば、置き換えるだけでできるんだけど、ちょっとやってみたかったので。

ではでは!