Si vous êtes d'accord pour obtenir le mot le plus courant parmi toutes les lignes (le mot le plus courant qui est séparé par un espace), vous pouvez utiliser :
select word, count(distinct rn) as num_rows
from(
select unnest(string_to_array(col, ' ')) as word,
row_number() over(order by col) as rn
from tbl
) x
group by word
order by num_rows desc
Violon : http://sqlfiddle.com/#!15/bc803/9/0
Notez que cela trouve le mot apple
parmi 4 lignes, et non 5. C'est parce que APPLE123
est un mot, alors que APPLE 123
serait deux mots, dont l'un est APPLE, et compterait, mais ce n'est pas le cas.