[英]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.