从列中添加值

Add values from a column

如何对 table 中数据类型为 text 的列的值求和。我尝试使用以下代码,它给了我以下错误:

SELECT sum(periodo::INTEGER) as period
FROM informe_reposo

Error: la sintaxis de entrada no es válida para integer

此代码:

SELECT sum(periodo::INTEGER) as period
FROM informe_reposo

假设 periodo 可以毫无问题地转换为整数。不幸的是,Postgres 没有安全转换,但您可以使用 case 并接近:

SELECT sum(case when periodo ~ '^[-]?[0-9]{1,9}$' then periodo end)::INTEGER) as period
FROM informe_reposo;

我建议您查看失败的值,看看您应该如何处理它们。