Seleziona il valore più comune da un campo in MySQL

Ho una tabella con un milione di righe, come faccio a selezionare il valore più comune (il valore che appare più nella tabella) da un campo?

È necessario raggruppare per colonna interessante e per ogni valore, selezionare il valore stesso e il numero di righe in cui appare.

Quindi è una questione di ordinamento (per mettere il valore più comune prima) e limitare i risultati a una sola riga.

Nel modulo di richiesta:

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

Questo thread dovrebbe far luce sul tuo problema.

Fondamentalmente, usa COUNT() con una clausola GROUP BY :

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

E per ottenere solo il primo risultato (più comune), aggiungi

 LIMIT 1 

Alla fine della tua domanda.

Nel caso in cui non sia necessario restituire la frequenza del valore più comune, è ansible utilizzare:

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

Questo ha l’ulteriore vantaggio di restituire solo una colonna e quindi di lavorare in sottoquery.