sql >> Database >  >> RDS >> PostgreSQL

SQL:zoek de langste gemeenschappelijke tekenreeks tussen rijen

Als je het goed vindt om het meest voorkomende woord van alle rijen te krijgen (het meest voorkomende woord dat wordt gescheiden door een spatie), kun je het volgende gebruiken:

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

Viool: http://sqlfiddle.com/#!15/bc803/9/0

Merk op dat dit het woord apple vindt tussen 4 rijen, niet 5. Dit komt omdat APPLE123 is één woord, terwijl APPLE 123 zou twee woorden zijn, waarvan er één APPLE is, en zou tellen, maar dat doet het niet.



  1. Inleiding tot C

  2. Fatale fout:aanroep van een lidfunctie query() op null

  3. overeenkomende tabelnaam met showtabellen

  4. MySQL INSERT ....OP DUPLICATE UPDATE - Voegt een toe aan de autoincrement