49 words, 1 min read

Here is an SQL statement to get the size of all your PostgreSQL databases.

SELECT
d.datname AS Name,
pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_size_pretty(
pg_catalog.pg_database_size(d.datname)
) ELSE 'No Access' END AS SIZE
FROM
pg_catalog.pg_database d
ORDER BY
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE NULL END DESC;

source