Вам необходимо отключить данные и затем агрегировать. Вот простой метод:
select name, sum(cnt)
from ((select name1 as name, count1 as cnt from t) union all
(select name2, count2 from t)
) t
group by name;
Более поздние версии Postgres поддерживают боковые объединения. Они могут быть более эффективными, когда у вас большой объем данных, но union all
также отлично работает.
EDIT:
Боковое соединение очень похоже:
select v.name, sum(v.cnt)
from t, lateral join
(values (t.name1, t.count1), (t.name2, t.count2)) v(name, cnt)
group by v.name;