ich einfach alle Tabellen der Form _%_jobs
durch die folgende Abfrage finden:Suche Namen aller Tabellen mit mehr als x Reihen
select * from pg_tables where tablename like '_%_jobs'
Ich möchte diese Liste filtern, damit ist nur die Tabellen die mehr als 200.000 Zeilen haben.
Ich habe versucht:
select * from pg_tables where tablename like '_%_jobs' having count(*) > 200000
aber dies führt zu einem Fehler:
ERROR: column "pg_tables.schemaname" must appear in the GROUP BY clause or be used in an aggregate function
Wie kann ich das erreichen?
versuchen Sie, wenn die Anzahl der Tabellen, die von der Abfrage sind> 200000 Sie müssen dynamische SQL zurückgegeben überprüfen verwenden, um die Zählungen von jedem der Tische zurück bekommen. –
@vkp das macht Sinn. Ich habe dynamisches sql vorher nicht verwendet, also bin ich nicht ganz sicher, wie man das geht –
können Sie Vakuumanalysestatistiken für das –