sql >> Database teknologi >  >> RDS >> Mysql

Brug af flere grupper ved at have en enkelt forespørgsel

Du skal lægge din første optælling ind i en underforespørgsel:

SELECT  COUNT(CASE WHEN C = 1 THEN 1 END) AS nooffamiliesHavingcount1,
        COUNT(CASE WHEN C = 2 THEN 1 END) AS nooffamiliesHavingcount2
FROM    (   SELECT  COUNT(*) AS C
            FROM    TableName
            GROUP BY House_No
        ) t
WHERE   c IN (1, 2);

REDIGER

Hvis du har brug for at lave intervaller i din optælling, kan du bruge dette:

SELECT  COUNT(CASE WHEN C <= 1 THEN 1 END) AS nooffamiliesHavingcount1,
        COUNT(CASE WHEN C BETWEEN 2 AND 4 THEN 1 END) AS nooffamiliesHavingcount2,
        COUNT(CASE WHEN C > 4 THEN 1 END) AS nooffamiliesHavingcount3
FROM    (   SELECT  COUNT(*) AS C
            FROM    TableName
            GROUP BY House_No
        ) t

Eksempel på SQL Fiddle



  1. SQL-server ved opdatering indstiller nuværende tidsstempel

  2. Eksempel på forbedring af forespørgselsydeevne med indekser

  3. Træk en række data fra en anden i SQL

  4. Angiv eksplicit en celles datatype som tekst for talværdier