Google BigQuery:仅从最新的表中选择

时间:2017-04-14 08:35:22

标签: google-bigquery

我有如下所示的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 <=

TABLE_QUERY

my previous question类似,我尝试使用{{1}}。但我找不到方法。

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

1 个答案:

答案 0 :(得分:3)

尝试以下

#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