BigQuery 表通配符函数别名?
Posted
技术标签:
【中文标题】BigQuery 表通配符函数别名?【英文标题】:BigQuery Table Wildcard Function Aliases? 【发布时间】:2014-06-10 21:01:13 【问题描述】:根据文档here,我应该能够引用表通配符函数作为别名:
...
FROM
[project_name:]datasetId.tableId |
(subselect_clause) |
table wildcard function
[[AS] alias]
...
但是,当我尝试这样做时,事情失败了:
bq query "SELECT * FROM TABLE_QUERY(my_data, \"TIMESTAMP(table_id) BETWEEN TIMESTAMP('2014-05-21') AND TIMESTAMP('2014-06-10')\") AS blah WHERE blah.foo = 5 LIMIT 30"
Waiting on bqjob_some_id ... (0s) Current status: DONE
BigQuery error in query operation: Error processing job 'some_id': Field 'blah.foo' not found in table 'mydata.20140521'; did you mean 'foo2'?
我想对通配符函数返回的数据进行连接,将其视为单个表,因此别名对我来说非常重要。想法?
【问题讨论】:
【参考方案1】:您链接到的页面确实提到“不要将别名与表通配符函数一起使用。”
你可以试试
SELECT *
FROM (SELECT * FROM TABLE_QUERY(--insert query here--)) AS blah
WHERE blah.foo = 5 LIMIT 30"
【讨论】:
如果“清楚地”你的意思是“作为一个脚注与它上面的巨大 FROM 语法相矛盾,那么是的。无论如何,谢谢你的回答。这就是我最终要做的,但让我的 SQL 看起来真的丑陋。 我并没有试图居高临下。对不起,听起来是这样的。我已经编辑了帖子。 不用担心。我刚刚遇到了 BigQuery 的许多不直观的行为,所以我已经对整件事感到恼火。无论如何,再次感谢您的回答。以上是关于BigQuery 表通配符函数别名?的主要内容,如果未能解决你的问题,请参考以下文章
Google BigQuery - 将通配符表查询与日期分区表一起使用?