Seleccione el valor más común de un campo en MySQL

Tengo una tabla con un millón de filas, ¿cómo selecciono el valor más común (el valor que aparece más en la tabla) de un campo?

Debe agrupar por la columna interesante y para cada valor, seleccionar el valor en sí y el número de filas en el que aparece.

Luego, es cuestión de ordenar (poner el valor más común primero) y limitar los resultados a una sola fila.

En forma de consulta:

SELECT column, COUNT(*) AS magnitude FROM table GROUP BY column ORDER BY magnitude DESC LIMIT 1 

Este hilo debería arrojar algo de luz sobre tu problema.

Básicamente, use COUNT() con una cláusula GROUP BY :

 SELECT foo, COUNT(foo) AS fooCount FROM table GROUP BY foo ORDER BY COUNT(foo) DESC 

Y para obtener solo el primer resultado (más común), agregue

 LIMIT 1 

Hasta el final de tu consulta.

En caso de que no necesite devolver la frecuencia del valor más común, podría usar:

 SELECT foo FROM table GROUP BY foo ORDER BY COUNT(foo) DESC LIMIT 1 

Esto tiene el beneficio adicional de devolver solo una columna y, por lo tanto, trabajar en subconsultas.