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

[SOLUCIONADO] Ordenar resultados dentro de un group by

Estas en el tema de Ordenar resultados dentro de un group by en el foro de Mysql en Foros del Web. Buenas noches, Llevo toda la tarde y parte de la mañana dándole vueltas a una consulta y no veo forma de sacarla, creo que lo ...
  #1 (permalink)  
Antiguo 19/03/2014, 14:59
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
Ordenar resultados dentro de un group by

Buenas noches,

Llevo toda la tarde y parte de la mañana dándole vueltas a una consulta y no veo forma de sacarla, creo que lo he probado todo A ver si podéis echarme una mano.

Os lo intento explicar de la forma más simplificada (ya me apañaré luego yo con lo demás):

Tabla tarifas con los campos:id, inicio, fin y precio.
Quiero conseguir agrupar por inicio y fin los resultados y que se me muestre el menor precio por cada agrupación.

Ejemplo practico (lo que mi consulta debería sacar es lo que esta en negrita):

1 - 01/01/2014 - 05/01/2014 - 100 €
2 - 01/01/2014 - 05/01/2014 - 75 €
3 - 02/01/2014 - 06/01/2014 - 90 €


Cualquier idea será buena, muchas gracias de antemano.

Un saludo
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #2 (permalink)  
Antiguo 20/03/2014, 01:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar resultados dentro de un group by

Código MySQL:
Ver original
  1. SELECT inicio,fin,MIN(tarifa) MinTarifa
  2. FROM tarifas
  3. GROUP BY inicio,fin;

Simpre que tarifa sea numérico.....

No?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 20/03/2014, 02:25
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Ordenar resultados dentro de un group by

Primeramente, muchas gracias por tu respuesta quimfv.

Lamentablemente esto ya lo había probado y no me funcionó, bueno tal y como lo has puesto tu si, porque da el inicio, fin (que son comunes en la agrupación, por tanto, siempre los mismos) y el menor de todos los precios, peeeero como necesito también el id de ese precio menor, cuando hago el select incluyendo el Id, me da un valor no correcto (me devuelve el primer id que encuentra en la agrupación y no el que pertenece al menor precio).
__________________
Ibisof | Saludos desde Eivissa !!! :p
  #4 (permalink)  
Antiguo 20/03/2014, 06:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ordenar resultados dentro de un group by

Haberlo dicho antes!!!

Cita:
Os lo intento explicar de la forma más simplificada (ya me apañaré luego yo con lo demás)
Has simplificado demasiado.

Código MySQL:
Ver original
  1. SELECT t.id, t.inicio, t.fin, t.precio
  2. FROM tarifas t INNER JOIN (SELECT inicio,fin,MIN(tarifa) MinTarifa
  3.                                            FROM tarifas
  4.                                            GROUP BY inicio,fin) Sbc
  5.                         ON t.inicio=Sbc.inicio AND t.fin=Sbc.fin AND t.precio=Sbc.MinTarifa;


Obviamente se podría dar el caso que haya más de un id para la misma tarifa mínima.... o no?? Si es el caso debes definir otra restricción para elegir uno de esos id.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 20/03/2014 a las 06:24
  #5 (permalink)  
Antiguo 20/03/2014, 09:15
 
Fecha de Ingreso: junio-2003
Mensajes: 744
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: Ordenar resultados dentro de un group by

Quería mostrarlo tan simple que me pasé !!! (El 1, 2 y 3 eran los ids jeje)

Muchísimas gracias, funciona perfectamente... Estaba atascada en eso y eso que probé de mil maneras. Voy a razonarlo y a implementarlo.

Muuuuuchas gracias de nuevo.
__________________
Ibisof | Saludos desde Eivissa !!! :p

Etiquetas: campo, group, resultados, 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 01:39.