首页 > 解决方案 > 从 Big Query 数据集中的所有表中获取特定列数据

问题描述

我想从大查询数据集中的每个表中获取最新创建的日期。假设我有名为 myDataset 的数据集并有 10 个表:table_a、table_b、table_c 等...(假设每个表都有 created_date 列)我知道我可以使用以下方法对每个表执行此操作:

SELECT MAX(created_date) 
FROM `myDataset.myTable`

但是,我可以对 myDataset 中的整个表进行一次查询吗?我只需要这样的输出并将其插入到新表中:

| table_name | created_date                   |
|------------|--------------------------------|
| table_a    | 2020-09-20 17:50:22.321449 UTC |
| table_b    | 2020-09-20 17:50:22.321449 UTC |
| table_c    | 2020-09-20 17:50:22.321449 UTC |

已经尝试过:

mydataset.__TABLES__ 

和 INFORMATION_SCHEMA

但我认为提供的 creation_time 和 last_modified_time 不是我要找的。

找到了一种方法来获取数据集中所有表或列的列表,使用

SELECT DISTINCT table_name
FROM `project_id`.myDataset.INFORMATION_SCHEMA.COLUMNS
ORDER BY table_name'

仍然不确定如何在不指定每个表的情况下加入/联合这个。

编辑:最终迭代python中的每个表以获得MAX(created_date),不知道是否可以仅使用SQL

标签: sqlgoogle-bigquery

解决方案


如果您的表具有相同的列(域),则可以使用Union.


推荐阅读