Wenn Sie damit einverstanden sind, das am häufigsten vorkommende Wort in allen Zeilen zu erhalten (das häufigste Wort, das durch ein Leerzeichen getrennt ist), können Sie Folgendes verwenden:
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
Geige: http://sqlfiddle.com/#!15/bc803/9/0
Beachten Sie, dass dies das Wort apple
findet unter 4 Zeilen, nicht 5. Das liegt daran, dass APPLE123
ist ein Wort, während APPLE 123
wären zwei Wörter, von denen eines APPLE ist, und würden zählen, aber das tut es nicht.