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

agrupar en una consulta

Estas en el tema de agrupar en una consulta en el foro de Bases de Datos General en Foros del Web. Tengo esta tabla: Lo que busco es agrupar EVENT_ID y que únicamente me muestre, de cada grupo, el valor mínimo de BSP, con su respectivo ...
  #1 (permalink)  
Antiguo 27/02/2012, 10:15
 
Fecha de Ingreso: febrero-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
agrupar en una consulta

Tengo esta tabla:




Lo que busco es agrupar EVENT_ID y que únicamente me muestre, de cada grupo, el valor mínimo de BSP, con su respectivo IPMIN

que me muestre este resultado:

Event_id BSP IPMIN
104968490 2.52etc 2.52
104968488 2.16 2.02
104968486 38,5etc 38

Probé varias formas y no la emboco.

Logro agrupar event_id y que solo me devuelva el mínimo. Pero cuando le quiero agregar IPMIN aparece cualquier número o pierdo el agrupado
  #2 (permalink)  
Antiguo 28/02/2012, 09:36
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: agrupar en una consulta

Hola gerardinio:

Puedes intentarlo así:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +-----------+------------------+-------+
  3. | event_id  | BSP              | ipmin |
  4. +-----------+------------------+-------+
  5. | 104968490 |               22 |    18 |
  6. | 104968490 |               29 |    17 |
  7. | 104968490 | 13.2209554337407 |  1.01 |
  8. | 104968490 | 409.938621082433 |   340 |
  9. | 104968488 |      7.570133308 |   6.6 |
  10. | 104968488 |             2.16 |   202 |
  11. | 104968488 |   677.8387292564 |   500 |
  12. | 104968486 | 38.5307160318063 |    38 |
  13. | 104968488 |    530.396331099 |   320 |
  14. | 104968488 | 52.6482694447864 |    38 |
  15. +-----------+------------------+-------+
  16. 10 rows in set (0.00 sec)
  17.  
  18. mysql> SELECT T1.* FROM tabla T1
  19.     -> INNER JOIN
  20.     -> (SELECT event_id, MIN(bsp) min_bsp
  21.     -> FROM tabla GROUP BY event_id) T2
  22.     -> ON T1.event_id = T2.event_id AND T1.bsp = T2.min_bsp;
  23. +-----------+------------------+-------+
  24. | event_id  | BSP              | ipmin |
  25. +-----------+------------------+-------+
  26. | 104968490 | 13.2209554337407 |  1.01 |
  27. | 104968488 |             2.16 |   202 |
  28. | 104968486 | 38.5307160318063 |    38 |
  29. +-----------+------------------+-------+
  30. 3 rows in set (0.16 sec)

El ejemplo está para MySQL, pero debería funcionar para cualquier DBMS.

Saludos
Leo.

Etiquetas: agrupar, 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 15:18.