Count nombre de fois la valeur apparaît dans une colonne particulière dans MySQL
Cela a probablement été demandé avant, mais je suis incapable de faire mon chemin à travers la myriade de résultats de recherche.
Étant donné une table MySQL non normalisée, Quelle est la requête la plus optimisée pour compter le nombre de fois que chaque valeur distincte de la colonne x a été utilisée?
Par exemple, étant donné une table contenant
mike
mary
mike
Renvoie des résultats comme:
mike 2
mary 1
À partir de la documentation MySQL, il semblerait que count
est une fonction d'agrégat qui peut être utilisée avec GROUP BY
, mais elle ne fait pas ce que je souhaitez (elle retourne le nombre total de lignes dans le GROUP BY
, pas le nombre d'apparitions de chaque ligne. c'est-à-dire que cela ne fonctionne pas SELECT count(email) as c FROM orders GROUP BY email
4 réponses
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
Jetez un oeil au groupe par fonction.
Ce Que fait la fonction group by est de regrouper la valeur similaire pour un champ donné. Vous pouvez ensuite afficher le nombre de fois que cette valeur a été groupée à l'aide de la fonction COUNT.
Vous pouvez également utiliser la fonction group by avec un bon nombre d'autres fonctions définies par MySQL (voir le lien ci-dessus).
mysql> SELECT student_name, AVG(test_score)
-> FROM student
-> GROUP BY student_name;
select name, count(*) from table group by name;
Je pense devrait le faire