Beto,

--query 1, com ER, retornando apenas uma linha

     SELECT COUNT(1)
       FROM  regexp_matches('a,b,c,d,a,c', 'a', 'g');

/* Resultado
 count
--------
      2
(1 rows)
*/

--query 2, usandos o padrão da string separado por virgulas

     SELECT x.x[i] , count(*)
       FROM  string_to_array('a,b,c,d,a,c', ',') AS x,
             generate_series(1,array_upper(string_to_array(cast('a,b,c,d,a,c'
as text),','),1)) AS i
    GROUP BY 1;

/* Resultado
 x      | count
--------+-----------
      b | 1
      c | 2
      d | 1
      a | 2
(4 rows)
*/

Espero ter ajudado.

Emerson Hermann

Em 5 de abril de 2011 09:11, Beto Lima <[email protected]> escreveu:
> desta forma não deu certo, talvez tenha explicado mal.
> ex: Rua:|João Pereira|344|Centro
>
> preciso contar quantos pipes existem nessa ocorrência. Neste caso 3.
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a