Cuente las apariciones de valores DISTINCT
Estoy tratando de encontrar una consulta MySQL que encuentre valores DISTINTOS en un campo en particular, cuente el número de apariciones de ese valor y luego ordene los resultados por recuento.
ejemplo de base de datos
id name
----- ------
1 Mark
2 Mike
3 Paul
4 Mike
5 Mike
6 John
7 Mark
Resultado Esperado
name count
----- -----
Mike 3
Mark 2
Paul 1
John 1
Aceptado
SELECT name,COUNT(*) as count
FROM tablename
GROUP BY name
ORDER BY count DESC;
¿Qué tal algo como esto?
SELECT
name,
count(*) AS num
FROM
your_table
GROUP BY
name
ORDER BY
count(*)
DESC
Estás seleccionando el nombre y la cantidad de veces que aparece, pero agrupando por nombre para que cada nombre se seleccione solo una vez.
Finalmente, ordena por número de veces en orden DESCENDENTE, para que los usuarios que aparecen con más frecuencia aparezcan primero.
Acabo de cambiar el COUNT(*) de Amber a COUNT(1) para un mejor rendimiento.
SELECT name, COUNT(1) as count
FROM tablename
GROUP BY name
ORDER BY count DESC;