Cela a probablement déjà été demandé auparavant, mais je ne parviens pas à parcourir la multitude de résultats de recherche.
Dans une table MySQL non normalisée, quelle est la requête la plus optimisée pour compter le nombre de fois où chaque valeur distincte de la colonne x a été utilisée?
par exemple. Étant donné un tableau contenant
mike
mary
mike
Renvoyer des résultats comme:
mike 2
mary 1
D'après la documentation MySQL, il semblerait que count
soit une fonction d'agrégat utilisable avec GROUP BY
, mais il ne fait pas ce que je veux (il renvoie le nombre total de lignes dans GROUP BY
, pas le nombre d'apparences pour chaque ligne. cela ne fonctionne pas SELECT count(email) as c FROM orders GROUP BY email
select email, count(*) as c FROM orders GROUP BY email
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
Jetez un coup d'œil au groupe par fonction.
Ce que fait le groupe par fonction est assez complexe en regroupant la même valeur pour un champ donné. Vous pouvez ensuite afficher le nombre de fois où cette valeur a été regroupée à l'aide de la fonction COUNT.
Vous pouvez également utiliser le groupe par fonction 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