Cuente las apariciones de valores DISTINCT

Resuelto JimmyJ asked hace 15 años • 4 respuestas

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
JimmyJ avatar Aug 28 '09 18:08 JimmyJ
Aceptado
SELECT name,COUNT(*) as count 
FROM tablename 
GROUP BY name 
ORDER BY count DESC;
Amber avatar Aug 28 '2009 11:08 Amber

¿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.

Pascal MARTIN avatar Aug 28 '2009 11:08 Pascal MARTIN

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;
aerin avatar Feb 26 '2018 20:02 aerin