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.se

Eu 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?

questionAnswers(3)

yourAnswerToTheQuestion