Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta para seleccionar el registro mayor de cada GRUPO. Uno por grupo.

Estas en el tema de Consulta para seleccionar el registro mayor de cada GRUPO. Uno por grupo. en el foro de Mysql en Foros del Web. Quiero saber como hago para sacar la consulta en mysql de la lista del mayor de cada grupo, por ejemplo mi tabla estaria asi: Tabla ...
  #1 (permalink)  
Antiguo 27/03/2014, 13:53
Avatar de majoo  
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Consulta para seleccionar el registro mayor de cada GRUPO. Uno por grupo.

Quiero saber como hago para sacar la consulta en mysql de la lista del mayor de cada grupo, por ejemplo mi tabla estaria asi:

Tabla “poderes”

Grupo Valor
A 12
A 19
A 2
A 78
B 10
B 8
B 5
C 6
C 12
C 19

Resultado de la consulta:
A 78
B 10
C 19

De antemano gracias.
  #2 (permalink)  
Antiguo 27/03/2014, 13:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta para seleccionar el registro mayor de cada GRUPO. Uno por grupo.

Usando MAX() y GROUP BY, como en cualquier otro DBMS...
Son consultas estandar. De manual... Las encontrará en cualquier tutorial.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/03/2014, 11:52
Avatar de majoo  
Fecha de Ingreso: marzo-2011
Ubicación: México
Mensajes: 2
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Consulta para seleccionar el registro mayor de cada GRUPO. Uno por grupo.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Usando MAX() y GROUP BY, como en cualquier otro DBMS...
Son consultas estandar. De manual... Las encontrará en cualquier tutorial.
SELECT *,MAX(cant) FROM tabla_ppal GROUP BY id_empresa

Resultado de la consulta:
id_empresa cant
A 78
B 10
C 19

Ese problema de arriba ¿se soluciona asi verdad?, ahora supongamos que tengo esa misma tabla, es la principal, aparte tambien tengo una tabla detalle donde guardo un monton de registros.

Ojala me explique bien, pero quiero hacer una consulta de la tabla detalle, que me traiga los registros detalle pero solo de aquellos registros que en la tabla principal son los maximo en su cantidad. Por ejemplo:

SELECT * FROM tabla_detalle td
INNER JOIN
(SELECT *,MAX(cant) FROM tabla_ppal GROUP BY id_empresa) tp ON td.id_poder=tp.id_poder;

Resultado de la consulta
id_empresa cant
A 78 <-- dos registros de esta
B 10 (cero de esta)
C 19 (cero de esta)

Hasta ahi me salen solo los registros detalle de los maximos registros en la principal. Los que no me aparecen con registros es porque no tienen registros detalle, asi de simple. Asi que en total me salen solo dos registros.

Peeeero lo que ocupo en realidad es que si un registro de la tabla principal no tiene detalle, entonces que me arrojara el detalle del que le sigue. Por ejemplo, basandonos en la tabla que puse anteriormente.


A 12
A 19
A 2
A 78 <-- este si tiene detalle asi que no hay problema
B 10 <-- este es el mayor pero no tiene detalle
B 8 <-- tengo que mostrar los registros detalle de este por ser el que le sigue
B 5
C 6 <-- le sigue este y lo muestro, en caso de que no tenga no muestro nada.
C 12 <--le sigue este pero tampoco tiene
C 19 <-- este es el mayor pero no tiene detalle

Eso no lo he podido resolver. Ojala alguien me diera una idea de que puedo haceeeeer.

Etiquetas: cada, grupo, mayor, registro, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:42.