Nonostante abbia aggiunto anche la dichiarazione delle variabili come da te suggerito non funziona ancora

codice:
set @nominativo := 0, @num := 1;
SELECT *
FROM (

SELECT * , @num := if( @nominativo = nominativo, @num +1, 1 ) AS riga_numero
FROM punteggi
ORDER BY nominativo ASC , punteggio DESC
) AS tab
WHERE riga_numero <=3
Dove sbaglio????
Esiste un metodo alternativo più "potabile" di questo? Ti giuro che non riesco a capire questa query! :-(
Mi sai aiutare?