En realidad, si hicieras esto:
Código sql:
Ver originalSELECT nombre, MAX(posicion) posicion
FROM tabla;
Te debería devolver
un sólo registro, si el valor de
posicion no se repite.
Si lo que quieres es obtener un sólo valor, la cosa sería algo así:
Código sql:
Ver originalSELECT nombre
FROM (SELECT nombre, MAX(posicion) posicion
FROM tabla) Tabla1;
El uso de
LIMIT es innecesario cuando buscas el mayor de un valor en un campo,
si ese valor no puede repetirse. Si
posición se repitiese, la forma más simple sería:
Código sql:
Ver originalSELECT nombre
FROM (SELECT nombre, MAX(posicion) posicion
FROM tabla) Tabla1
GROUP BY posicion;
Ya que al estar trabajando con subconsultas, en la consulta
posicion pasa a ser nombre de un campo y no alias de una función agregada (no se puede poner en la subconsulta porque violaría la restricción de funciones agregadas en el GROUP BY).