sql >> Databáze >  >> RDS >> PostgreSQL

SQL:Najděte nejdelší společný řetězec mezi řádky

Pokud vám vyhovuje získat nejčastěji se vyskytující slovo ze všech řádků (nejběžnější slovo oddělené mezerou), můžete použít:

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

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

Všimněte si, že toto najde slovo apple mezi 4 řádky, ne 5. Důvodem je APPLE123 je jedno slovo, zatímco APPLE 123 by byla dvě slova, z nichž jedno je APPLE, a počítalo by se, ale ne.



  1. jak vložit arabštinu do mysql z asp.net C#

  2. Použití agregační funkce MIN na pole BIT

  3. Nejúčinnější metoda pro detekci změny sloupce na MS SQL Server

  4. Formátovat výsledky dotazu v SQL*Plus