Obtendo as palavras mais usadas de uma coluna de strings no SQL
Então nós temoseste banco de dados preenchido com um monte de strings, neste caso, postar títulos.
O que eu quero fazer é:
Divida a sequência em palavrasConte quantas vezes as palavras aparecem em stringsDê-me as 50 melhores palavrasNão tem esse tempo limite em uma consulta data.seEu tentei usar as informações deesta pergunta SO adaptado ao data.se da seguinte forma:
select word, count(*) from (
select (case when instr(substr(p.Title, nums.n+1), ' ') then substr(p.Title, nums.n+1)
else substr(p.Title, nums.n+1, instr(substr(p.Title, nums.n+1), ' ') - 1)
end) as word
from (select ' '||Title as string
from Posts p
)Posts cross join
(select 1 as n union all select 2 union all select 10
) nums
where substr(p.Title, nums.n, 1) = ' ' and substr(p.Title, nums.n, 1) <> ' '
) w
group by word
order by count(*) desc
Infelizmente, isso me dá uma série de erros:
'substr' não é um nome de função incorporado reconhecido. Sintaxe incorreta perto de '|'. Sintaxe incorreta perto de 'nums'.
Portanto, considerando uma coluna de strings no SQL com uma quantidade variável de texto em cada string, como posso obter uma lista das palavras X mais usadas?