2016-06-08 5 views
0

У меня есть набор данных, который выглядит следующим образом:SQL: как подсчитать, сколько строк содержат несколько ключевых слов

enter image description here

И я хотел бы сделать запрос на выборку, где можно установить вручную ключевые слова (например, город, красивые, дожди, деревья) и подсчитывать, сколько раз появляются эти ключевые слова. В этом случае результат должен быть

enter image description here

+0

Не появляется ли «город» четыре раза? И «красивый» дважды? –

ответ

2

Предположим, что у вас есть таблица ключевых слов. Затем вы можете:

select kw.word, count(d.city) 
from keywords kw left join 
    dataset d 
    on d.description like concat('%', kw.word, '%') 
group by kw.word; 

Единственная проблема с этим - частичные совпадения. Таким образом, «деревья» будут соответствовать ключевому слову «tree» (а также «re» и «e» и т. Д.). Если вы знаете, что у вас нет пунктуации, и можете предположить, что слова разделены пробелами, вы можете использовать:

select kw.word, count(d.city) 
from keywords kw left join 
    dataset d 
    on concat(' ', d.description, ' ') like concat('% ', kw.word, ' %') 
group by kw.word; 
Смежные вопросы