Количество вхождений MySQL больше 2
у меня есть следующая структура таблицы
+ id + word +
+------+--------+
таблица заполняется словами в Нижнем cas данного текста, поэтому текст
привет пока привет
в результате
+ id + word +
+------+--------+
+ 1 + hello +
+------+--------+
+ 2 + bye +
+------+--------+
+ 3 + hello +
+------+--------+
Я хочу сделать запрос SELECT, который вернет количество слов, которые повторяются не менее двух раз в таблице (например, hello)
SELECT COUNT(id) FROM words WHERE (SELECT COUNT(words.word))>1
что, конечно, так неправильно и супер перегрузка, когда таблица большая. Любая идея о том, как достичь такой цели? В данном примере здесь-выше, я ожидал бы 1
3 ответа:
чтобы получить список слов, которые появляются более одного раза вместе с тем, как часто они встречаются, используйте комбинацию GROUP BY и HAVING:
SELECT word, COUNT(*) AS cnt FROM words GROUP BY word HAVING cnt > 1
чтобы найти количество слов в приведенном выше результирующем наборе, используйте его в качестве подзапроса и подсчитайте строки во внешнем запросе:
SELECT COUNT(*) FROM ( SELECT NULL FROM words GROUP BY word HAVING COUNT(*) > 1 ) T1