2014-04-18 23 views
8

我有一組日分片數據,其中單個條目不包含一天。我想使用表通配符來選擇所有可用的數據,並獲取按我感興趣的列和捕獲日期分組的數據。東西,換句話說,就像這樣:有沒有辦法選擇BigQuery表中的table_id通配符查詢

SELECT table_id, identifier, Sum(AppAnalytic) as AppAnalyticCount 
    FROM (TABLE_QUERY(database_main,'table_id CONTAINS "Title_" AND length(table_id) >= 4')) 
    GROUP BY identifier, table_id order by AppAnalyticCount DESC LIMIT 10 

當然,這不實際工作,因爲table_id的不是從TABLE_QUERY函數生成的表中聚集可見。有什麼辦法可以做到這一點?也許某種表格元數據的連接?

回答

4

此功能目前可提供的BigQuery通過_TABLE_SUFFIX虛列。完整的文檔位於https://cloud.google.com/bigquery/docs/querying-wildcard-tables。 夫婦的注意事項:

  • 您將需要使用Standard SQL使表通配符
  • 你將不得不重新命名_TABLE_SUFFIX成別的東西在你SELECT列表,也就是下面的例子說明它

    SELECT _TABLE_SUFFIX as table_id, ... FROM `MyDataset.MyTablePrefix_*`

9

今天不可用,但我也很想擁有。該團隊認真對待功能請求,因此感謝您爲此添加支持:)。

與此同時,一種解決方法是對每個表的SELECT進行手動聯合,再加上一個包含日期數據的附加列。

例如,而不是:

SELECT x, #TABLE_ID 
FROM table201401, table201402, table201303 

你可以這樣做:

SELECT x, month 
FROM 
    (SELECT x, '201401' AS month FROM table201401), 
    (SELECT x, '201402' AS month FROM table201402), 
    (SELECT x, '201403' AS month FROM table201403) 
+0

嗯,你也得到我的支持... –

+1

帶上並且投票給你r功能要求:https://code.google.com/p/google-bigquery/issues/list?q=label:Feature-Request –

+1

看起來像[163](https://code.google.com/p/google-bigquery/issues/detail?id = 163)是我們應該投票才能獲得此功能的錯誤。 –

相關問題