none
hacer varios count dentro de una misma consulta ? RRS feed

  • Pregunta

  • Hola

    estoy utilizando mysql y quiero hacer algo como lo siguiente

    deseo traer todo en una consulta

    tengo una tabla llama personas y deseo saber cuantas de esas personas son menores de 5 años, cuantas estan entre 5 y 10 años , cuantas estan entre 10 y 20 años , cuantas estan entre 20 y 30 ,y cuantas son mayores de 30 años

    tabla personas con los campos 

    tipodocumento , documento, nombre , ciudad, telefono ,edad

    Gracias

    miércoles, 1 de agosto de 2012 21:35

Todas las respuestas

  • hola

    podrias armar subcomsultas que luego unes

    select T1.Cant As Menor5, T2.Cant As Entre5y10

    FROM (SELECT COUNT(*) As Cant FROM Personas WHERE edad < 5) As T1,

    (SELECT COUNT(*) As Cant FROM Personas WHERE edad >5 AND edad <10) As T2

    y asi el resto

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 2 de agosto de 2012 8:00
  • Para no tener que utilizar tantas subconsultas, puedes utilizar sum con un case

    SELELCT SUM(CASE WHEN EDAD<5 THEN 1 ELSE 0 END) AS MENOR5,

    SUM(CASE WHEN EDAD BETWEEN 5 AND 10 THEN 1 ELSE 0 END) AS ENTRE5Y10,

    SUM(CASE WHEN EDAD BETWEEN 10 AND 20 THEN 1 ELSE 0 END) AS ENTRE10Y20,

    SUM(CASE WHEN EDAD BETWEEN 20 AND 30 THEN 1 ELSE 0 END) AS ENTRE20Y30,

    SUM(CASE WHEN EDAD > 30 THEN 1 ELSE 0 END) AS MAYOR30

    FROM TABLA

    jueves, 2 de agosto de 2012 11:50