Hola a todos, ojala puedan ayudarme con esto simple:
Tengo una tabla asi
Tabla: "clientes"
ID | Nombre | Dinero |
1 | Juan | 50 |
2 | Juan | 90 |
3 | Juan | 30 |
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:
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
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.
Así:
SELECT id, nombre, dinero FROM clientes WHERE dinero IN (SELECT MAX(dinero) FROM clientes GROUP BY nombre);
Cita de: cassiani en 16 Septiembre 2017, 13:39 PM
Así:
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
Amigo para que salga el máximo primero y el mínimo último tienes que añadirle -> ORDER BY dinero