はじめに
他のDBでは使えるものもあるようですが、Bigqueryでは変数が使えません。
使えないですが、クエリを工夫すると変数のようなものを扱うことができ、
再利用性も可読性もすごく高まります。
今回はBQでよくある、パーティションタイムだけ都度変えてクエリを発行する
という場面を想定して変数(のようなもの)の使い方を紹介します
パターン① 1行のテーブルをcross join
with const as (
select
timestamp('2018-1-1') as date
)
select
*
from
table,const
where
_PARTITIONTIME = date
パターン② ユーザー定義関数を使う
create temporary function getDate() as (TIMESTAMP('2018-1-1'));
select
*
from
table
where
_PARTITIONTIME = getDate()