sql >> Databáze >  >> RDS >> Mysql

Dotaz na počítání různých slov všech hodnot ve sloupci

Ne jednoduchým způsobem. Pokud znáte maximální počet slov, můžete udělat něco takového:

select substring_index(substring_index(p.post, ' ', n.n), ' ', -1) as word,
       count(*)
from post p join
     (select 1 as n union all select 2 union all select 3 union all select 4
     ) n
     on length(p.post) - length(replace(p.post, ' ', '')) < n.n
group by word;

Všimněte si, že to funguje pouze v případě, že jsou slova oddělena jednou mezerou. Pokud máte samostatný slovník všech možných slov, můžete jej také použít, něco jako:

select d.word, count(p.id)
from dictionary d left join
     posts p
     on concat(' ', p.post, ' ') like concat(' %', d.word, ' %')
group by d.word


  1. Nelze spustit velký dynamický výběrový dotaz v uložené proceduře

  2. Oprava „Aritmetická chyba přetečení při převodu výrazu na datový typ int“ v SQL Server

  3. Mohu počítat návštěvy, abych určil počet lidí online?

  4. Pochopení pohledů v SQL