我想在我的数据库中汇总多个表,获取每个列的统计信息(min,max,avg,num of null values等)。
有没有postgresql命令/工具呢?
答案 0 :(得分:1)
Postgresql维护所有表的统计信息。它们通过pg_stats视图显示。
它至少包含您所追求的一些信息,例如空值的比例,以及其他可能有用的信息,如最常见值的直方图等。
这些统计信息由数据库本身维护,以帮助进行查询规划。
示例用法:获取表'foo'中的空值分数和不同值的数量:
ispdb_t1=> select tablename || '.' || attname as tablecolumn, null_frac, n_distinct from pg_stats where tablename='foo';
tablecolumn | null_frac | n_distinct
-------------------+-------------+------------
foo.name | 0 | -1
foo.a | 0.000785309 | 4
foo.b | 0.000241633 | 4
foo.id | 0 | -1
foo.d | 0 | 553
(6 rows)