Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: yovaninu en 14 Septiembre 2017, 15:43 PM

Título: Consulta MySQL con MAX
Publicado por: yovaninu en 14 Septiembre 2017, 15:43 PM
Hola a todos, ojala puedan ayudarme con esto simple:
Tengo una tabla asi

Tabla: "clientes"









IDNombreDinero
1Juan50
2Juan90
3Juan30

Lo que deseo obtener a través de una consulta de MySQL es el monto maximo que 'Juan' tiene en esas 3 filas, PERO el numero de fila, es decir, el resultado deberia ser:



2Juan90

Dado que es en la 2da fila en donde tiene mas dinero.

Al poner asi:

select id,nombre,max(dinero) from "clientes"


o asi:

select id,nombre,max(dinero) from "clientes" group by nombre


Me resulta asi


1Juan90

Dando a entender que el maximo dinero que juan tiene esta en la primera fila, cuando lo correcto es en la segunda.

Que estoy haciendo mal?

Desde ya les quedo agradecido.
Título: Re: Consulta MySQL con MAX
Publicado por: cassiani en 16 Septiembre 2017, 13:39 PM
Así:

Código (sql) [Seleccionar]
SELECT id, nombre, dinero FROM clientes WHERE dinero IN (SELECT MAX(dinero) FROM clientes GROUP BY nombre);
Título: Re: Consulta MySQL con MAX
Publicado por: yovaninu en 16 Septiembre 2017, 21:14 PM
Cita de: cassiani en 16 Septiembre 2017, 13:39 PM
Así:

Código (sql) [Seleccionar]
SELECT id, nombre, dinero FROM clientes WHERE dinero IN (SELECT MAX(dinero) FROM clientes GROUP BY nombre);
Es correcto, pero si la tabla clientes ahora crece a:

Tabla: "clientes"
ID   Nombre   Dinero
1      Juan         50
2      Juan         90
3      Juan         30
4      Pedro       80
5      Pedro       200
6      Pedro       30

La consulta deja de funcionar si lo que queremos es la fila en la que Juan y Pedro tienen mas dinero que deberia ser 2da para Juan y la 5ta para Pedro
Título: Re: Consulta MySQL con MAX
Publicado por: garc en 16 Septiembre 2017, 23:53 PM
Amigo para que salga el máximo primero y el mínimo último tienes que añadirle -> ORDER BY dinero