查找超过x行的所有表的名称

时间:2016-08-05 14:00:57

标签: sql postgresql

我可以通过以下查询轻松找到_%_jobs形式的所有表格:

select * from pg_tables where tablename like '_%_jobs' 

我想过滤此列表,以便只有超过200,000行的表。

我试过了:

select * from pg_tables where tablename like '_%_jobs' having count(*) > 200000

但这会导致错误:

  

错误:列“pg_tables.schemaname”必须出现在GROUP BY子句中或用于聚合函数

我该如何做到这一点?

1 个答案:

答案 0 :(得分:3)

尝试

SELECT relname, reltuples from pg_class where relname like '_%_jobs' 

此处报告的数字与实际数字之间可能存在轻微差异。从reltuples上的手册部分:

  

表格中的行数。这只是一个估计使用的估计   规划师。它由VACUUM,ANALYZE和一些DDL命令更新   作为CREATE INDEX。