SQL - Contar usuarios que cumplen con intervalo de edad 18 a 25 años

 
Vista:

Contar usuarios que cumplen con intervalo de edad 18 a 25 años

Publicado por Daniel (2 intervenciones) el 07/10/2019 05:08:06
Buenas, estoy haciendo la consulta a una Tabla USUARIOS, donde cada usuario tiene su fecha_nacimiento y apartir de allí quiero contar cuantos ususarios tienen entre 18 y 25 años.

1
2
3
4
SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, FECHA_NACIMIENTO)/12), COUNT(CORREO)
    FROM USUARIOS
         HAVING FLOOR(MONTHS_BETWEEN(SYSDATE, FECHA_NACIMIENTO)/12) BETWEEN 18 AND 25
            GROUP BY FLOOR(MONTHS_BETWEEN(SYSDATE, FECHA_NACIMIENTO)/12);

El problema es que la consulta me arroja

500cf5a2a05aefc091fc608930dc5b59o


donde me dice que hay 1 usuario con 24 años 1 con 23 y uno con 18 año. Pero yo quiero es que en una sola fila me diga que hay TRES (3) Usuarios con edad entre 18 y 25. Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de gilman
Val: 184
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Contar usuarios que cumplen con intervalo de edad 18 a 25 años

Publicado por gilman (103 intervenciones) el 07/10/2019 08:27:35
Prueba:
1
2
3
SELECT  COUNT(CORREO)
    FROM USUARIOS
         WHERE FLOOR(MONTHS_BETWEEN(SYSDATE, FECHA_NACIMIENTO)/12) BETWEEN 18 AND 25
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar usuarios que cumplen con intervalo de edad 18 a 25 años

Publicado por daniel (2 intervenciones) el 07/10/2019 22:34:32
Muchas gracias me fue de gran utilidad.

Una pregunta mas como podría saber en la misma consulta:
1. La cantidad de usuarios entre x rango de edad
2. La cantidad total de registros.

Esto para poder sacar el porcentaje que me representa la cantidad de usarios de x rango. Usando el count condicionado con el where BETWEEN 18 AND 25, ya no me contara la totalidad de registros solo el rango, necesito ambos valores.
Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 184
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Contar usuarios que cumplen con intervalo de edad 18 a 25 años

Publicado por gilman (103 intervenciones) el 08/10/2019 08:19:54
Si estás trabajando con Oracle lo siguiente debería funcionar.
1
2
3
4
5
6
7
8
9
10
11
12
SELECT COUNT (*) TODOS,
       SUM (
          CASE
             WHEN FLOOR (MONTHS_BETWEEN (SYSDATE, FECHA_NACIMIENTO) / 12) BETWEEN 18
                                                                              AND 25
             THEN
                1
             ELSE
                0
          END)
          ENRANGO
  FROM USUARIOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar