繁体   English   中英

从 Big Query 数据集中的所有表中获取特定列数据

[英]Get specific column data from all tables in Big Query datasets

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

SELECT MAX(created_date) 
FROM `myDataset.myTable`

但是,我可以在对 myDataset 中的整个表的单个查询中执行此操作吗? 我只需要 output 这样的东西并将其插入到新表中:

| 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

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

您可以像这样使用union all

SELECT '`table_a`' as table_name, MAX(created_date) 
FROM `table_a`
UNION ALL
SELECT '`table_b`' as table_name, MAX(created_date) 
FROM `table_b`
UNION ALL
SELECT '`table_c`' as table_name, MAX(created_date) 
FROM `table_c`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM