Avec une sous-requête, vous avez toutes les lignes à votre disposition :
SELECT sum(val) FROM (
SELECT unnest(array[a1,a2,a3]) as val FROM table) alias;
Vous pouvez également regrouper vos lignes, par exemple :
SELECT field, sum(val) FROM (
SELECT field, unnest(array[a1,a2,a3]) as val FROM table) alias
GROUP BY field;