2014-06-10 58 views
1

根據文檔here,我應該能夠引用表通配符功能別名:BigQuery表通配符函數別名?

... 
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'? 

我想對從通配符函數返回的數據進行聯接,將其作爲單個表進行處理,因此對它進行別名對我來說非常重要。想法?

回答

3

您鏈接到的頁面確實提到了「不要在表格通配符函數中使用別名」。

你可能想通過「明確提出」你的意思是「作爲註腳矛盾的巨大FROM語法上面嘗試

SELECT * 
FROM (SELECT * FROM TABLE_QUERY(--insert query here--)) AS blah 
WHERE blah.foo = 5 LIMIT 30" 
+0

如果,那麼是的。無論如何,感謝答案。這就是我清盤做,但是讓我的SQL看起來真的很難看。 – Eli

+0

我並沒有試圖屈服,對不起,它聽起來就是這樣,我編輯了這篇文章 – Rohit

+1

不用擔心,我剛剛遇到了BigQuery中很多不直觀的行爲,所以我已經對整件事感到惱火了。無論如何,再次感謝你的答案。 – Eli