MySQL count occurrences greater than 2

Mysql

Mysql Problem Overview


I have the following table structure

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

The table gets filled with the words in lower cas of a given text, so the text

Hello bye hello

would result in

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

I want to make a SELECT query that will return the number of words that get repeated at least two times in the table (like hello)

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

which of course is so wrong and super overloading when table is big. Any idea on how to achieve such purpose? In the given example inhere-above, I would expect 1

Mysql Solutions


Solution 1 - Mysql

To get a list of the words that appear more than once together with how often they occur, use a combination of GROUP BY and HAVING:

SELECT word, COUNT(*) AS cnt
FROM words
GROUP BY word
HAVING cnt > 1

To find the number of words in the above result set, use that as a subquery and count the rows in an outer query:

SELECT COUNT(*)
FROM
(
    SELECT NULL
    FROM words
    GROUP BY word
    HAVING COUNT(*) > 1
) T1

Solution 2 - Mysql

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

Solution 3 - Mysql

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

Solution 4 - Mysql

The HAVING option can be used for this purpose and query should be

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfabjoaView Question on Stackoverflow
Solution 1 - MysqlMark ByersView Answer on Stackoverflow
Solution 2 - Mysqlbot403View Answer on Stackoverflow
Solution 3 - Mysqla1ex07View Answer on Stackoverflow
Solution 4 - Mysqlvishy dewanganView Answer on Stackoverflow