sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Está implementada la función XPath sum o fn:sum en PostgreSQL XPath?

Me encontré con el mismo problema y me complace agregar otra respuesta a la pregunta:

Con PostgreSQL 9.2, la documentación de repente tiene una oración más que cubre la función xpath:

¡Justo lo que necesito! Entonces, en relación con la pregunta, otra respuesta válida es:Actualizar a PostgreSQL 9.2. En el momento de escribir esto, la versión 9.2 es solo una versión beta, pero puedo confirmar que esto funciona:

Detalles de la versión

postgres=# select version();
                                                     version                                                      
------------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2beta1 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52), 64-bit
(1 row)

Demostración de la solución

(Esta demostración se hizo con Postgre 9.5, porque originalmente pegué el código incorrecto)

postgres=# SELECT xpath('sum(/my:a/value[.>15])', '<my:a xmlns:my="http://example.com">
postgres'# <value>20</value>
postgres'# <value>10</value>
postgres'# <value>30</value>
postgres'# </my:a>',
postgres(# ARRAY[ARRAY['my', 'http://example.com']]);
 xpath 
-------
 {50}
(1 row)