sql >> Database teknologi >  >> RDS >> Mysql

Forespørgsel om at tælle de forskellige ord af alle værdier i en kolonne

Ikke på en nem måde. Hvis du kender det maksimale antal ord, så kan du gøre sådan noget:

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;

Bemærk, at dette kun virker, hvis ordene er adskilt af enkelte mellemrum. Hvis du har en separat ordbog over alle mulige ord, kan du også bruge den, sådan som:

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. Sådan indsætter du en streng i en anden streng i SQL Server ved hjælp af STUFF()

  2. 12c DBA_USERS Ændringer

  3. Tæller antallet af sammenføjede rækker i venstre sammenføjning

  4. SQL:hvordan forespørgsel i sql rækkefølge ved oprettet i dette tilfælde