Google bigquery 如何使用通配符表语法(如_table_后缀)连接信息_模式元数据,以便在Google Big Query中通过表名称获得结果

Google bigquery 如何使用通配符表语法(如_table_后缀)连接信息_模式元数据,以便在Google Big Query中通过表名称获得结果,google-bigquery,Google Bigquery,我有一个Google大查询数据集,其中包含使用快照的表(例如:我看到一个名为.system_users的表,实际上有多个名为system_users[YYYYMMDD]格式的表) 我想在列“\u schema\u push\u date”中查询所有快照的唯一值,并显示表的全名。我期待的最终结果是: Row | table_name | _schema_push_date 1 | system_users20200101 | 2020-01-0

我有一个Google大查询数据集,其中包含使用快照的表(例如:我看到一个名为.system_users的表,实际上有多个名为system_users[YYYYMMDD]格式的表)

我想在列“\u schema\u push\u date”中查询所有快照的唯一值,并显示表的全名。我期待的最终结果是:

Row    | table_name               | _schema_push_date 
1      | system_users20200101     | 2020-01-01 09:51:29.251 UTC
2      | system_users20200102     | 2020-01-02 08:53:04.017 UTC
我正在使用

'''WHERE REGEXP_CONTAINS(_TABLE_SUFFIX, r"202001([0-2])")'''
为了限制查询的表,我想我还需要将_table_后缀与信息_SCHEMA.tables.table_NAME连接起来,以便将表名放入结果中


在GBQ中使用通配符语法时,可以将“表”后缀与“架构数据”中的信息连接起来。

要包含表名,必须将“表”后缀添加到select语句中,并将其别名。例如:

  select  _TABLE_SUFFIX as my_table_name, email, count(1)
  FROM `my_project.my_dataset.*`
  WHERE REGEXP_CONTAINS(_TABLE_SUFFIX, r"202005[0-3]*")
  GROUP BY my_table_name, email
将产生如下结果

my_table_name     | email        | f0
my_first_table    | my@email.com | 2345
以下是指向其他伪列的有趣链接:

可以使用INFORMATION\u SCHEMA.TABLES从dataset获取包含元数据的表,然后使用\u table\u后缀/通配符查询实际表,最后将两个表连接起来(这两个表都应该位于with()语句中)。此外,如果要按表名联接,则表名应该是两个表中的一列。请您也检查一下这个描述类似场景的例子好吗?让我知道结果。谢谢@muscat-这没有回答我的问题,但让我意识到我可以问得更好:“当使用通配符语法时,我可以在查询结果中包括表名吗?”正如您所指出的,要加入,我需要在两个查询中都有一个公共列,如“table_name”。我的问题是,当使用_TABLE_后缀作为过滤器时,我只在结果中得到_TABLE_后缀的过滤部分。例如:“从
my\u proj.my\u dataset.*
WHERE\u TABLE\u SUFFIX(如“%20200523”)中选择_schema\u push\u date,count(1),_TABLE\u SUFFIX(表格后缀)作为my\u TABLE\u name(表格名称)。”