sql >> データベース >  >> RDS >> Mysql

列内のすべての値の個別の単語をカウントするためのクエリ

    簡単な方法ではありません。単語の最大数がわかっている場合は、次のようにすることができます:

    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;
    

    これは、単語が単一のスペースで区切られている場合にのみ機能することに注意してください。可能性のあるすべての単語の個別の辞書がある場合は、次のように使用することもできます。

    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. SQLiteを除く

    2. where句でエイリアスを使用するにはどうすればよいですか?

    3. 使用されているMySQL構成ファイルを特定します

    4. Access2016でテーブルからレポートを作成する方法