Вы можете использовать вариацию количества строк для всех таблиц подход:
select t.table_name,
(xpath('/row/max/text()', xmax))[1]::text::int
from (
SELECT table_name, data_type,
query_to_xml(format('select max(%I) from %I.%I', column_name, table_schema, table_name), true, true, '') as xmax
FROM information_schema.columns
WHERE column_name = 'column1'
and table_schema = 'public'
) as t;
query_to_xml()
запускает select max(..) from ..
для каждого столбца, возвращаемого запросом. В результате получается что-то вроде:
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<max>42</max>
</row>
Функция xpath()
затем используется для извлечения значения из XML. Производная таблица (подзапрос) на самом деле не нужна, но делает выражение xpath()
более читабельным (на мой взгляд).