sql >> Databáze >  >> RDS >> Mysql

Použití více skupin pomocí jediného dotazu

Musíte zadat svůj první počet do dílčího dotazu:

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

UPRAVIT

Pokud potřebujete ve svém počtu provést rozsahy, můžete použít toto:

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

Příklad na SQL Fiddle



  1. Jak převedu numpy NaN objekty na SQL null?

  2. Aktualizace řádku pomocí poddotazu vracejícího více řádků

  3. Mezipaměť:Co to je a jak to ovlivňuje výkon databáze?

  4. Jak ručně nastavit počáteční hodnotu na 1000 v MySQL