有没有办法在Bigquery表通配符查询中选择table_id

Ove*_*Tim 9 google-bigquery

我有一组日分片数据,其中单个条目不包含当天.我想使用表通配符来选择所有可用数据并获取按我感兴趣的列和捕获日期分组的数据.换句话说,就像这样:

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 
Run Code Online (Sandbox Code Playgroud)

当然,这实际上不起作用,因为table_id在TABLE_QUERY函数产生的表聚合中不可见.有没有办法实现这个目标?或许某种表格元数据的连接?

Fel*_*ffa 10

今天不可用,但我也喜欢这样的东西.团队认真对待功能请求,所以感谢您为此添加支持:).

与此同时,一种解决方法是对每个表的SELECT进行手动并集,并添加一个包含日期数据的附加列.

例如,而不是:

SELECT x, #TABLE_ID
FROM table201401, table201402, table201303
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

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)
Run Code Online (Sandbox Code Playgroud)

  • 在此处为您的功能请求投票并投票:https://code.google.com/p/google-bigquery/issues/list?q=label:功能请求 (2认同)

Mos*_*sky 8

此功能现在可通过_TABLE_SUFFIX伪列在BigQuery中使用.完整文档位于https://cloud.google.com/bigquery/docs/querying-wildcard-tables.有几点需要注意:

  • 您将需要使用标准SQL来启用表通配符
  • 您必须_TABLE_SUFFIXSELECT列表中重命名为其他内容,即下面的示例说明了它

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