Подтвердить что ты не робот

Количество экземпляров MySQL больше 2

У меня есть следующая структура таблицы

+  id  +  word  +
+------+--------+

Таблица заполняется словами в нижнем кадре заданного текста, поэтому текст

Привет, привет, привет,

приведет к

+  id  +  word  +
+------+--------+
+   1  + hello  +
+------+--------+
+   2  + bye    +
+------+--------+
+   3  + hello  +
+------+--------+

Я хочу сделать запрос SELECT, который вернет количество слов, которые будут повторяться как минимум два раза в таблице (например, привет)

SELECT COUNT(id) FROM words WHERE (SELECT COUNT(words.word))>1

который, конечно, настолько ошибочен и супер перегружен, когда таблица большая. Любая идея о том, как достичь такой цели? В данном примере выше, я ожидал бы 1

4b9b3361

Ответ 1

Чтобы получить список слов, которые появляются несколько раз вместе с тем, как часто они происходят, используйте комбинацию 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

Ответ 2

SELECT count(word) as count 
FROM words 
GROUP BY word
HAVING count >= 2;

Ответ 3

SELECT word, COUNT(*) FROM words GROUP by word HAVING COUNT(*) > 1