【发布时间】:2017-06-01 21:57:33
【问题描述】:
我需要在所有匹配某个命名方案的表上查询相同的聚合统计信息:
SELECT
SUBSTR(CONCAT('20', _TABLE_SUFFIX), 0, 10) AS date,
CASE
WHEN ENDS_WITH(_TABLE_SUFFIX, 'mobile') THEN 'mobile'
ELSE 'desktop'
END AS client,
APPROX_QUANTILES(bytesJS,1000)[OFFSET(500)] AS p50
FROM
`httparchive.runs.20*`
WHERE
ENDS_WITH(_TABLE_SUFFIX, '_pages')
OR ENDS_WITH(_TABLE_SUFFIX, '_pages_mobile')
GROUP BY
1,
2
ORDER BY
1,
2
但是,查询失败,Error: Unrecognized name: bytesJS at [7:20]
应该有大约 150 个表与查询匹配。以下是这些表之一的架构:https://bigquery.cloud.google.com/table/httparchive:runs.2017_05_15_pages
bytesJS 是有效的列名,但由于无法识别而失败。替换不同的已知列时出现相同的错误。我不确定这是使用表通配符的直接结果还是什么。
我会用旧版 SQL 重写它,看看是否可行,但我的查询需要选择表元数据。
这是否与通配符不兼容?
【问题讨论】:
-
还要注意删除APPROX_QUANTILES行会产生有效结果,所以这个错误肯定和bytesJS有关。
标签: google-bigquery