Есть ли какая-либо альтернатива Regexp_count в Impala?

#sql #oracle #impala

Вопрос:

Я ищу альтернативу Oracle Regexp_count в Impala. Есть ли какая-либо альтернатива или есть какой-либо способ реализовать regexp_count в Impala?

Ответ №1:

Замените шаблон каким-нибудь символом, которого нет в вашем шаблоне, скажем, тильдой»~», затем удалите все, что не является тильдой, затем вычислите длину строки. Если начальная строка может содержать тильды, удалите их все раньше.

Например, чтобы вычислить, сколько раз шаблон test встречается в строке ( также содержит тильды ) 'test ~something ~test, one more test~' :

 length(--get length (the number of tildes)  regexp_replace(  regexp_replace(  regexp_replace('test ~something ~test, one more test~','~',''), --remove all tildes  'test','~'), --replace pattern with tilde  '[^~] ','') --remove everything that is not tilde  ) --calculate the number of tildes  

Это вернет 3