Om du är okej med att få det vanligaste ordet bland alla rader (det vanligaste ordet som separeras med ett mellanslag), kan du använda:
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
Fiol: http://sqlfiddle.com/#!15/bc803/9/0
Observera att detta hittar ordet apple
bland 4 rader, inte 5. Detta beror på att APPLE123
är ett ord, medan APPLE 123
skulle vara två ord, varav ett är APPLE, och skulle räknas, men det gör det inte.