Esto creo que debería funcionar:
Código:
SELECT puntaje.idfacebook, puntaje.nombre, puntaje.puntos, puntaje.nivel
FROM puntaje,
(SELECT idfacebook, nombre, MAX(puntos) AS mayor
FROM puntaje
GROUP BY 1,2) AS maximo
WHERE puntaje.idfacebook = maximo.idfacebook
AND puntaje.nombre = maximo.nombre
AND puntaje.puntos = maximo.mayor
ORDER BY puntaje.puntos DESC LIMIT 0,10
si un idfacebook se corresponde con un nombre, deberías quitarlo para optimizar la ejecución de la siguiente forma:
Código:
SELECT puntaje.idfacebook, puntaje.nombre, puntaje.puntos, puntaje.nivel
FROM puntaje,
(SELECT idfacebook, MAX(puntos) AS mayor
FROM puntaje
GROUP BY 1,2) AS maximo
WHERE puntaje.idfacebook = maximo.idfacebook
AND puntaje.puntos = maximo.mayor
ORDER BY puntaje.puntos DESC LIMIT 0,10
Espero que funcione