数据库中的所有表都包含同一列,将其称为date_marked_invalid
。我想在所有表的此列上找到MAX()
。有没有办法无需运行就可以获取这些
SELECT MAX(date_marked_invalid) FROM one_particular_table
为每个单独的表分别设置?
对于Postgres hackery like this可以解决,但就我所知,这在Snowflake上不起作用。
答案 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
动态生成聚合语句的查询将位于
行中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输出捕获到文件中,像这样构建查询并获得结果。
我希望这种不整洁的方法可能暂时有用。