Saltar al contenido

Contar el número de apariciones de una subcadena dentro de una cadena en PostgreSQL

Solución:

Una solución común se basa en esta lógica: reemplace la cadena de búsqueda con una cadena vacía y divida la diferencia entre la longitud antigua y la nueva por la longitud de la cadena de búsqueda

(CHAR_LENGTH(name) - CHAR_LENGTH(REPLACE(name, 'substring', ''))) 
/ CHAR_LENGTH('substring')

Por eso:

UPDATE test."user"
SET result = 
    (CHAR_LENGTH(name) - CHAR_LENGTH(REPLACE(name, 'o', ''))) 
    / CHAR_LENGTH('o');

Una forma de Postgres de hacer esto convierte la cadena en una matriz y cuenta la longitud de la matriz (y luego resta 1):

select array_length(string_to_array(name, 'o'), 1) - 1

Tenga en cuenta que esto también funciona con subcadenas más largas.

Por eso:

update test."user"
    set result = array_length(string_to_array(name, 'o'), 1) - 1;

Otra manera:

UPDATE test."user" SET result = length(regexp_replace(name, '[^o]', '', 'g'));
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *