【发布时间】:2020-11-06 22:20:33
【问题描述】:
我有一个架构myschema,其中有几十个表,每个表都包含一个特定的列maincolumn。我想创建整个架构的统计信息,我可以在其中查看每个表的 maincolumn 中有多少不同的值。
我知道我可以通过这个查询列出架构中的表:
SELECT tablename
FROM pg_tables
WHERE schemaname = 'myschema'
结果:
tablename
---------
table1
table2
table3
...
我还可以为每个表运行查询:
SELECT COUNT(DISTINCT(maincolumn))
FROM myschema.table1
结果:
count
-----
2972
但我想知道是否有办法将这两个任务合并到一个查询中,结果会是这样:
tablename | count
----------+------
table1 | 2972
table2 | 542
table3 | 1523
....
一个不太优雅的解决方案是列出我所有的表,将结果放入 Excel 表中并使用 CONCATENATE 函数为每个表创建一个 SELECT 查询,然后我可以逐行运行它,但我更喜欢更简单的方法。
【问题讨论】:
标签: sql postgresql statistics