Google BigQuery:仅从最新表中选择

Posted

技术标签:

【中文标题】Google BigQuery:仅从最新表中选择【英文标题】:Google BigQuery: SELECT only from newest tables 【发布时间】:2017-04-14 08:35:21 【问题描述】:

我有如下所示的 Big Query 表,并且想对每个组的最新表发出查询(标记为 <=

prefix_AAAAAAA_20170329012345
             :
prefix_AAAAAAA_20170413032333
prefix_AAAAAAA_20170413112205 <=
prefix_BBBBBBB_20170327233456
             :
prefix_BBBBBBB_20170414012244
prefix_BBBBBBB_20170414130509 <=
prefix_CCCCCCC_20170327154412
             :
prefix_CCCCCCC_20170414090022
prefix_CCCCCCC_20170414091530 <=

像my previous question,我尝试使用TABLE_QUERY。但我找不到路。

我该怎么做?或者我可以在标准 SQL 中使用通配符表吗?

【问题讨论】:

【参考方案1】:

下面试试

#standardSQL
SELECT *
FROM `yourProject.yourDataset.prefix_*`
WHERE _TABLE_SUFFIX IN (
  SELECT SUBSTR(CONCAT(t, d), LENGTH('prefix_') + 1) AS tbl
  FROM (
    SELECT SUBSTR(table_id, 1, LENGTH(table_id) - 14) AS t, MAX(SUBSTR(table_id, -14)) AS d
    FROM `yourProject.yourDataset.__TABLES__`
    WHERE SUBSTR(table_id, 1, LENGTH('prefix_')) = 'prefix_' AND LENGTH(table_id) > 14
    GROUP BY t
  )
)  

注意:上述查询中的数字 14 来自表中与日期时间相关的后缀的长度

prefix_AAAAAAA_20170329012345

【讨论】:

以上是关于Google BigQuery:仅从最新表中选择的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL ,从 2 个表中选择,但仅从表 2 中选择最新的元素

将新的 Google 表格数据附加到 BigQuery 表中

Google Data Studio (BigQuery) - 创建过滤器以按最新时间选择

休眠:仅从一个表中选择所有而不是 3 个连接表

可以使用 Google Prediction API 从 bigquery 表中检索相似的行吗?

Google Bigquery 通过简单的选择说“响应太大而无法返回”