Cando se importan datos vía CSV a unha táboa da base de datos en PostgreSQL o tipo de dato que son é VARCHAR. Ocorre que si se quere levar a cabo unha operación matemática con ela é preciso primeiro transformala nun tipo NUMERIC. O problema xurde se cando se importa a variable que debería ser de tipo numérico ten unha coma decimal. Neste caso é preciso primeiro transformar a «,» nun «.» e posteriormente transformar a variable en tipo NUMERIC. O comando é o seguinte:
REPLACE(v.valor::TEXT, ','::TEXT, '.'::TEXT)::NUMERIC
Por outro lado queremos tamén xerar unha variable pero que só conteña un valor sen necesidade de definila previamente. Isto lógrase a través do seguinte código:
'valor'::CHARACTER VARYING
Así, como exemplo, preséntase a seguinte consulta para unha base de datos PostgreSQL que reúne estas dúas condicións:
SELECT
v.ano,
v.mes,
'España'::CHARACTER VARYING AS residencia,
SUM(REPLACE(v.valor::TEXT, ','::TEXT, '.'::TEXT)::NUMERIC) AS valor
FROM ocupacion.viaxeirosnoites v
GROUP BY v.ano, v.mes