BQでonテーブルをいい感じに指定する_TABLE_SUFFIX
BQだとonのテーブルをちゃんと指定すると実行速度=料金がよくなります。
ということで、過去2ヶ月分のテーブルのみを指定するみたいな感じをやりたかったんですが、そこを自動で取りたかった。
BQだとonのテーブルをちゃんと指定すると実行速度=料金がよくなります。
ということで、過去2ヶ月分のテーブルのみを指定するみたいな感じをやりたかったんですが、そこを自動で取りたかった。
正確には過去2ヶ月を綺麗に取るのが目的ではなく、速度や料金をマシにするので、これだと若干多く取ります。なので取ったあとのwhenとかでちゃんとやってあげるのが正しいかもしれません。SELECT t1.id, max(case when t2.id is not null then 1 else 0 end) as is_2months_msgFROM `table` t1left outer join `table_data_on_*` t2 on (t1.id = t2.dat_id)WHERE t2._TABLE_SUFFIX >= FORMAT_DATE("%Y%m01", DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 2 MONTH))group by t1.id
table_data_on_202105 みたいなパターン
コメント