Sí. Pero los valores se almacenan como texto, por lo que primero debe convertirlos a un tipo de datos apropiado. Por lo tanto, para sumar alturas en pulgadas, que se almacenan en un hstore en la columna "otro"
CREATE TABLE my_table (
id integer primary key,
other hstore
);
insert into my_table values
(1, hstore('height_in', '72') || hstore('weight_lbs', '180')),
(2, hstore('height_in', '65') || hstore('girth_in', '42'));
select sum((other->'height_in')::integer) sum_of_height
from my_table;
sum_of_height
--
137
¿Qué sucede si una fila contiene valores que no se pueden convertir en números enteros? Le dará 'ERROR: sintaxis de entrada inválida para entero:' entonces ¿cómo obtener el resultado deseado salteando esa fila? – RockStar
@RockStar: use una cláusula WHERE y una expresión regular: 'donde (other -> 'height_in') ~ '^ \ d + $''. Sin embargo, la necesidad de hacer esto apunta a un error en el código de su aplicación. Arregla eso. –