我有一个使用TABLE_QUERY()的现有查询,并根据creation_time过滤结果:
SELECT
*
FROM (TABLE_QUERY( project_114151_dataset , "MSEC_TO_TIMESTAMP(creation_time) > DATE_ADD(CURRENT_TIMESTAMP(), -45, 'DAY') AND REGEXP_MATCH(table_id, r'^fact_[0-9]{8}$') "))
我想根据last_modified_time更改要运行的查询;因为它也是以毫秒为单位的时间戳,所以我将查询更改为如下
SELECT
*
FROM (TABLE_QUERY( project_114151_dataset , "MSEC_TO_TIMESTAMP(last_modified_time) > DATE_ADD(CURRENT_TIMESTAMP(), -45, 'DAY') AND REGEXP_MATCH(table_id, r'^fact_[0-9]{8}$') "))
但是,在运行时我收到以下错误:
Error: Error evaluating subsidiary query
不确定我为什么会收到此错误;我已经通过运行以下查询验证了该字段是否存在,并确实在结果中返回:
SELECT * FROM project_114151_dataset.__TABLES__
WHERE MSEC_TO_TIMESTAMP(creation_time) <
DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY')
任何帮助将不胜感激!
答案 0 :(得分:1)
TABLE_QUERY()
功能中可用的唯一字段是:project_id
,dataset_id
,table_id
,creation_time
和type
。它们是__TABLES_SUMMARY__
伪表返回的字段。 (尝试SELECT * FROM project_114151_dataset.__TABLES_SUMMARY__
)。