Mi viene in mente uno scassone del genere
codice:
SELECT preferenzauno,  count(preferenzauno)
FROM test
GROUP BY preferenzauno
UNION
SELECT  preferenzadue, count(preferenzadue)
FROM test
GROUP BY preferenzadue
UNION SELECT  preferenzatre, count(preferenzatre)
FROM test
GROUP BY preferenzatre;
In base al valore preferenzauno che racchiuderà anche tutte le altre ti fai i conti in un ciclo condizionale. Al momento non mi viene in mente altro visto che COUNT è una funzione di colonna e alcune funzionalità implementabili dipendo anche dalla versione del server mysql... nel caso di una versione superiore alla 4.1x prova ad implementare con l'uso di subquery e sommare i risultanti.