Ако не сте съгласни с получаването на най-често срещаната дума сред всички редове (най-често срещаната дума, която е разделена с интервал), можете да използвате:
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
Цигулка: http://sqlfiddle.com/#!15/bc803/9/0
Имайте предвид, че това намира думата apple
сред 4 реда, а не 5. Това е така, защото APPLE123
е една дума, докато APPLE 123
ще бъде две думи, едната от които е APPLE, и ще се брои, но не е.