J'essaie de trouver une requête MySQL qui recherche les valeurs DISTINCT dans un champ particulier, compte le nombre d'occurrences de cette valeur, puis trie les résultats.
exemple db
id name
----- ------
1 Mark
2 Mike
3 Paul
4 Mike
5 Mike
6 John
7 Mark
résultat attendu
name count
----- -----
Mike 3
Mark 2
Paul 1
John 1
Merci
SELECT name,COUNT(*) as count FROM tablename GROUP BY name ORDER BY count DESC;
qu'en est-il quelque chose comme ça:
select name, count(*) as num
from your_table
group by name
order by count(*) desc
vous sélectionnez le nom et le nombre de fois qu’il apparaît; mais en regroupant par nom, chaque nom est sélectionné une seule fois.
Ensuite, vous commandez par nombre de fois, desc; avoir les utilisateurs qui apparaissent le plus souvent en premier.
Vient juste de changer le compte d'Amber (*) en compte (1) pour une meilleure performance.
SELECT name, COUNT(1) as count
FROM tablename
GROUP BY name
ORDER BY count DESC;