Query below returns the average number of columns per table in a database.
Query
select count(*) as columns,
count(distinct t.table_schema || '.' || t.table_name) as tables,
round ((count(*)::decimal
/ count(distinct t.table_schema || '.' || t.table_name)), 2)
as average_column_count
from information_schema.tables t
left join information_schema.columns c on c.table_schema = t.table_schema
and c.table_name = t.table_name
where t.table_schema not in ('information_schema', 'pg_catalog')
and table_type = 'BASE TABLE';
Columns
- columns - total number of columns in a database
- tables - number of tables in a database
- average_column_count - average number of columns in a table in a database
Rows
- Query returns just one row