sql - 从 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
解决方案
如果您的表具有相同的列(域),则可以使用Union
.
推荐阅读
- batch-processing - Apache Flink - DataSet API - 如何将 n 个结果组合在一起
- java - Maven:编译错误包不存在。如何为maven添加额外的源目录进行编译
- android - TextView 和 Button 卡在 android studio 蓝图的左上角
- python - 如何使用elasticsearch-dsl在所有索引中找到数组中的不同值?
- django - 我在 django 中使用 Angular 1.6,如果我刷新页面 django 提供 html 文件但控制器没有加载
- xml - 如何在 Excel 中使用 VBA 查找重复项并分别列出它们?
- go - protoc 命令不适用于 go generate
- javascript - 第一次使用angularjs 1.6未在treeview kendo ui中选中父子复选框
- selenium - CreatePlatformSocket() 返回错误:提供的参数无效。(0x2726) 尝试通过网络路径访问 chromedriver
- android - ACTION_CANCEL 生成并丢失数据