Nombre de occurrences de MySQL supérieur à 2

J’ai la structure de table suivante

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

La table est remplie avec les mots en bas de casse d’un texte donné, donc le texte

Bonjour salut

aboutirait à

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

Je veux faire une requête SELECT qui retournera le nombre de mots répétés au moins deux fois dans la table (comme bonjour)

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

ce qui est bien sûr faux et surchargé lorsque la table est grande. Une idée sur comment atteindre un tel objective? Dans l’exemple ci-dessus, je m’attendrais à 1

Pour obtenir une liste des mots qui apparaissent plus d’une fois en même temps que leur fréquence, utilisez une combinaison de GROUP BY et HAVING:

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

Pour trouver le nombre de mots dans le jeu de résultats ci-dessus, utilisez-le comme une sous-requête et comptez les lignes d’une requête externe:

 SELECT COUNT(*) FROM ( SELECT NULL FROM words GROUP BY word HAVING COUNT(*) > 1 ) T1 
 SELECT count(word) as count FROM words GROUP BY word HAVING count >= 2; 

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