Otra consulta sql

26/04/2006 - 21:21 por Hugo Gsell | Informe spam
tengo una tabla donde cada registro es una persona y tengo un campo edad
tipo integer deseo crear una consulta donde cuente la cantidad de
registros que esten entre un grupo de rangos...
Ejemplo
nroreg edad
1 10
2 12
3 18
4 20
5 50

donde mis rango son
rango1 de 1<edad<19
rango2 de 19<edad<50
rango3 de edad>P
entonces la consulta debe arrojarme un registro por cada rango y quedaría de
acuerdo al ejemplo
rango 1 3
rango 2 1
rango 3 1
Se entiende?
 

Leer las respuestas

#1 Victor
26/04/2006 - 21:49 | Informe spam
Create una tabla de rangos con id, inicio, fin y luego haces un inner
join, te paso tu ejemplo resuelto


SELECT RANGOS.IdRango,COUNT(*) 'Personas'
FROM (
SELECT 1 'IdPersona', 10 'Edad'
UNION
SELECT 2, 12
UNION
SELECT 3, 18
UNION
SELECT 4 ,20
UNION
SELECT 5 'Ref', 50
) PERSONAS
INNER JOIN
(
SELECT 1 'IdRango',1 'Inicio',19 'Fin'
UNION
SELECT 2 ,20 ,49 'Fin'
UNION
SELECT 3 ,50 ,125 'Fin'
) RANGOS ON PERSONAS.EDAD BETWEEN RANGOS.INICIO AND RANGOS.FIN
GROUP BY RANGOS.IdRango


Un saludo.


"Hugo Gsell" escribió en el mensaje
news:
tengo una tabla donde cada registro es una persona y tengo un campo


edad
tipo integer deseo crear una consulta donde cuente la cantidad de
registros que esten entre un grupo de rangos...
Ejemplo
nroreg edad
1 10
2 12
3 18
4 20
5 50

donde mis rango son
rango1 de 1<edad<19
rango2 de 19<edad<50
rango3 de edad>P
entonces la consulta debe arrojarme un registro por cada rango y quedaría


de
acuerdo al ejemplo
rango 1 3
rango 2 1
rango 3 1
Se entiende?


Preguntas similares