数据库中所有表的汇总

时间:2020-01-08 08:00:12

标签: snowflake-cloud-data-platform

数据库中的所有表都包含同一列,将其称为date_marked_invalid。我想在所有表的此列上找到MAX()。有没有办法无需运行就可以获取这些

SELECT MAX(date_marked_invalid) FROM one_particular_table

为每个单独的表分别设置?

对于Postgres hackery like this可以解决,但就我所知,这在Snowflake上不起作用。

2 个答案:

答案 0 :(得分:1)

所有列的MIN / MAX值都存储在每个表的元数据中,但不幸的是,例如,无法访问。 here is my js code (function init() { $('div[role="tabpanel"]').first().addClass("in"); $('.panel i').first().addClass("glyphicon-minus"); $('.panel-collapse').on('show.bs.collapse', function (e) { $(this).find('.panel i').removeClass('glyphicon-minus').addClass('glyphicon-plus'); $(e.target).parents('.panel').find('i').removeClass('glyphicon-plus').addClass('glyphicon-minus'); var $panel = $(this).closest('.panel'); $('.scrollbar').animate({ //scrollTop: 30 scrollTop: $panel.offset().top }, 300); }); $('#accordion').on('hide.bs.collapse', function (e) { $(e.target).parents('.panel').find('i').removeClass('glyphicon-minus').addClass('glyphicon-plus'); }); });

如果您创建的存储过程遍历INFORMATION_SCHEMA.COLUMNS中的表,则它仍然是“仅元数据”操作,但必须手动完成。

雪花没有像Postgres的INFORMATION_SCHEMA.COLUMNS

这样的可以运行动态SQL的功能。

动态生成聚合语句的查询将位于

行中
query_to_xml()

答案 1 :(得分:0)

过去,当我作为开发人员时,我无法使用传统方法,因此我无法访问传统RDBMS世界中的任何系统表。我使用了show表来获取所有表的列表,然后使用excel生成带有附加别名列的max(date_marked_invalid))作为表名,然后应用union all生成结果。

select max(date_marked_invalid) as dt, 'table-1' as table from table-1 union all
select max(date_marked_invalid) as dt, 'table-2' as table from table-2 union all
select max(date_marked_invalid) as dt, 'table-3' as table from table-3 

结果可能看起来像

enter code here
dt        |  table
01-01-2020 table-1
01-02-2020 table-2

有了表列表后,就可以像这样格式化所有查询并获取结果。如果这是一项工作任务,并且应该运行一项工作,那么某些脚本语言或编程语言可以在这里帮助您在其中将show table输出捕获到文件中,像这样构建查询并获得结果。

我希望这种不整洁的方法可能暂时有用。

相关问题