Dalla versione 9.6 è molto più semplice poiché ha introdotto la funzione pg_blocking_pids()
per trovare le sessioni che stanno bloccando un'altra sessione.
Quindi puoi usare qualcosa del genere:
select pid,
usename,
pg_blocking_pids(pid) as blocked_by,
query as blocked_query
from pg_stat_activity
where cardinality(pg_blocking_pids(pid)) > 0;