Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/05/2011, 16:03
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 8 meses
Puntos: 360
Respuesta: Grupos de edad

Hola rick_korn

Cita:
no hay una forma de hacerlo todo en uno ya sea por PL/SQL
Trabajas con mysql o con oracle?

Adicional a los que dice leonardo, a la ultima consulta (información en forma de renglones) en vez de adicionarle el UNION para mostrar el total utilizaría el modificador ROLLUP. También quitaría la subconsulta ya que no sería necesaria

Código MySQL:
Ver original
  1. mysql> SELECT
  2.     ->      (CASE WHEN edad BETWEEN 0 AND 9 THEN "20_9"
  3.     ->      WHEN edad BETWEEN 10 AND 19 THEN "10_19"
  4.     ->      WHEN edad BETWEEN 20 AND 29 THEN "20_29"
  5.     ->      WHEN edad BETWEEN 30 AND 39 THEN "30_39"
  6.     ->      WHEN edad > 39 THEN "mas_9" END) rangos,count(*) AS conteo
  7.     ->      FROM TablaEdades
  8.     ->      GROUP BY rangos WITH ROLLUP;
  9. +--------+--------+
  10. | rangos | conteo |
  11. +--------+--------+
  12. | 10_19  |      3 |
  13. | 20_29  |      5 |
  14. | 30_39  |      2 |
  15. | NULL   |     10 |
  16. +--------+--------+
  17. 4 rows in set (0.00 sec)
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Última edición por huesos52; 24/05/2011 a las 16:10