web-dev-qa-db-fra.com

Nombre de fois où la valeur apparaît dans une colonne particulière de MySQL

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

25
Mahmoud Al-Qudsi
select email, count(*) as c FROM orders GROUP BY email
47
Nesim Razon
SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name
14
garnertb

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.

Documentation MySQL

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;
1
Erwald
select name, count(*) from table group by name;

je pense devrait le faire

0
davethecoder