PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

A função XPath sum ou fn:sum está implementada no PostgreSQL XPath?


Me deparei com o mesmo problema e tenho o prazer de adicionar outra resposta à pergunta:

Com o PostgreSQL 9.2 a documentação de repente tem mais uma frase cobrindo a função xpath:

Exatamente o que eu preciso! Então, em relação à pergunta, outra resposta válida é:Atualize para o PostgreSQL 9.2. No momento em que escrevo isso, a versão 9.2 é apenas uma versão beta, mas posso confirmar que isso funciona:

Detalhes da versão

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)

Demonstração da solução


(Esta demonstração foi feita com o Postgre 9.5, pois originalmente colei o código errado)
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)