sha*_*oux 2 sql google-bigquery
我想做以下事情
FROM if(... = ...,
table_date_range(mytable, timestamp('2017-01-01'), timestamp('2017-01-17')),
table_date_range(mytable, timestamp('2016-01-01'), timestamp('2016-01-17'))
)
Run Code Online (Sandbox Code Playgroud)
BigQuery 允许这种操作吗?
您可以使用一个条件做到这一点_TABLE_SUFFIX的标准SQL。例如,
SELECT *
FROM `my-dataset.mytable`
WHERE IF(condition,
_TABLE_SUFFIX BETWEEN '20170101' AND '20170117',
_TABLE_SUFFIX BETWEEN '20160101' AND '20160117');
Run Code Online (Sandbox Code Playgroud)
要记住的一件事是,由于匹配的表后缀可能是动态确定的(基于表中的某些内容),因此您需要支付全表扫描费用。