Sql 具有正则表达式和日期范围的BigQuery通配符表
有没有可能把这两种方法结合起来 我已经看了一遍,但似乎没有完全涵盖我的用例 我有以下格式的表名:Sql 具有正则表达式和日期范围的BigQuery通配符表,sql,google-bigquery,wildcard,Sql,Google Bigquery,Wildcard,有没有可能把这两种方法结合起来 我已经看了一遍,但似乎没有完全涵盖我的用例 我有以下格式的表名:s\u CUSTOMER\u ID\u YYYYMMDD 我可以使用以下方法查找客户ID的所有表: SELECT * FROM TABLE_QUERY([project:dataset], 'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")') 我可以通过以下方式找到日期范围内的所有表格: SELECT * FROM (TABL
s\u CUSTOMER\u ID\u YYYYMMDD
我可以使用以下方法查找客户ID的所有表:
SELECT *
FROM TABLE_QUERY([project:dataset],
'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")')
我可以通过以下方式找到日期范围内的所有表格:
SELECT *
FROM (TABLE_DATE_RANGE([project:dataset],
TIMESTAMP('2016-01-01'),
TIMESTAMP('2016-03-01')))
但是我如何同时查询这两个呢
我尝试使用如下子查询:
SELECT * FROM
(SELECT *
FROM TABLE_QUERY([project:dataset],
'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")'))
,(SELECT *
FROM (TABLE_DATE_RANGE([project:dataset],
TIMESTAMP('2016-01-01'),
TIMESTAMP('2016-03-01'))))
…但解析器抱怨出现错误:无法解析表:项目:数据集
添加一个点,使其成为project:dataset。
将产生一个错误error:error准备辅助查询:dataset项目:dataset。未找到
我的桌名做得不好吗?如果是这样的话,有什么更好的方法来组织它们呢?下面的“快速解决方案”应该有效,您可以根据实际/额外的需求来改进它
SELECT *
FROM
TABLE_QUERY([project:dataset],
'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")
AND RIGHT(table_id, 8) BETWEEN "20160101" AND "20160301"')