Ver Mensaje Individual
  #6 (permalink)  
Antiguo 12/12/2008, 04:35
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar el registro con el mayor valor en un campo ???

En realidad, si hicieras esto:
Código sql:
Ver original
  1. SELECT nombre, MAX(posicion) posicion
  2. 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 original
  1. SELECT nombre
  2. FROM (SELECT nombre, MAX(posicion) posicion
  3.           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 original
  1. SELECT nombre
  2. FROM (SELECT nombre, MAX(posicion) posicion
  3.           FROM tabla) Tabla1
  4. 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).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)