sql >> Databasteknik >  >> RDS >> Mysql

Använda flera grupper genom att ha en enda fråga

Du måste lägga din första räkning i en underfråga:

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);

REDIGERA

Om du behöver göra intervall i din räkning kan du använda detta:

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

Exempel på SQL Fiddle



  1. Grunderna i SQL Server ALTER TABLE Statement

  2. PHP DELETE omedelbart efter val

  3. html/php/sql-formulär med infoga/uppdatering

  4. Hur man skapar relationer i MySQL