Aparentemente
conversion_units
é uma string que pode conter valores não conversíveis em numeric
. Seu problema imediato pode ser resolvido desta forma:
SUM(NULLIF(conversion_units, '')::numeric)
mas pode haver outros valores.
Você pode tentar usar regexp para corresponder a strings conversíveis:
SUM((CASE WHEN conversion_units ~ E'^\\d(?:\\.\\d)*$' THEN conversion_units END)::numeric)