MySQL: conta le occorrenze di valori distinti

Sto cercando di trovare una query MySQL che trovi valori distinti in un campo particolare, conta il numero di occorrenze di quel valore e poi ordina i risultati per il conteggio.

esempio db

id name ----- ------ 1 Mark 2 Mike 3 Paul 4 Mike 5 Mike 6 John 7 Mark 

Risultato atteso

 name count ----- ----- Mike 3 Mark 2 Paul 1 John 1 

Grazie

 SELECT name,COUNT(*) as count FROM tablename GROUP BY name ORDER BY count DESC; 

che dire di qualcosa del genere:

 select name, count(*) as num from your_table group by name order by count(*) desc 

cioè, si sta selezionando il nome e il numero di volte che appare; ma raggruppando per nome in modo che ogni nome venga selezionato una sola volta.

Quindi, ordinate per numero di volte, desc; avere per primi gli utenti che appaiono più di frequente.

Ho appena cambiato Amber’s COUNT (*) in COUNT (1) per prestazioni migliori.

 SELECT name, COUNT(1) as count FROM tablename GROUP BY name ORDER BY count DESC;