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)