Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/06/2012, 10:21
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Crear dos columnas dependiendo de los datos de una

Con respecto a agrupar por rangos... hace tiempo tuve necesidad de hacer algo por el estilo... en ese entonces se requería agrupar la información por horas... para esto, simplemente utilizamos DATE_FORMAT para eliminar los minutos y segundos... es decir, hicimos algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +----------+-------+---------------------+
  3. | atributo | Valor | FechaHora           |
  4. +----------+-------+---------------------+
  5. | Media    |  10.0 | 2012-06-18 17:40:00 |
  6. | Media    |  20.0 | 2012-06-18 17:40:12 |
  7. | Media    |  30.0 | 2012-06-18 17:45:34 |
  8. | Media    |  40.0 | 2012-06-18 18:00:00 |
  9. | Media    |  50.0 | 2012-06-18 18:59:59 |
  10. +----------+-------+---------------------+
  11. 5 rows in set (0.00 sec)
  12.  
  13. mysql> SELECT
  14.     ->   fechaHora,
  15.     ->   DATE_FORMAT(fechaHora, '%Y-%m-%d %H:00:00')
  16.     -> FROM tabla;
  17. +---------------------+---------------------------------------------+
  18. | fechaHora           | DATE_FORMAT(fechaHora, '%Y-%m-%d %H:00:00') |
  19. +---------------------+---------------------------------------------+
  20. | 2012-06-18 17:40:00 | 2012-06-18 17:00:00                         |
  21. | 2012-06-18 17:40:12 | 2012-06-18 17:00:00                         |
  22. | 2012-06-18 17:45:34 | 2012-06-18 17:00:00                         |
  23. | 2012-06-18 18:00:00 | 2012-06-18 18:00:00                         |
  24. | 2012-06-18 18:59:59 | 2012-06-18 18:00:00                         |
  25. +---------------------+---------------------------------------------+
  26. 5 rows in set (0.00 sec)
  27.  
  28. mysql> SELECT
  29.     ->   atributo,
  30.     ->   DATE_FORMAT(fechaHora, '%Y-%m-%d %H:00:00'),
  31.     ->   SUM(valor) suma
  32.     -> FROM tabla
  33.     -> GROUP BY atributo, DATE_FORMAT(fechaHora, '%Y-%m-%d %H:00:00');
  34. +----------+---------------------------------------------+------+
  35. | atributo | DATE_FORMAT(fechaHora, '%Y-%m-%d %H:00:00') | suma |
  36. +----------+---------------------------------------------+------+
  37. | Media    | 2012-06-18 17:00:00                         | 60.0 |
  38. | Media    | 2012-06-18 18:00:00                         | 90.0 |
  39. +----------+---------------------------------------------+------+
  40. 2 rows in set (0.00 sec)

Otra opción, sería crear una tabla de los intervalos que necesites... checa este post que contesté hace algunos días, se presenta algo como lo que quieres hacer.

http://www.forosdelweb.com/f86/probl...nsulta-999782/

Saludos
Leo.