sql >> データベース >  >> RDS >> Mysql

単一のクエリで複数のグループを使用する

    最初のカウントをサブクエリに入れる必要があります:

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

    編集

    カウントで範囲を設定する必要がある場合は、次を使用できます:

    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
    

    SQLフィドルの例



    1. Postgresの予約から最初の無料開始時間を見つける方法

    2. EM12cデータベースの待機アラートの使用時間

    3. 無効なパラメーター番号:バインドされた変数の数がDoctrineのトークンの数と一致しません

    4. SQLServerでINSERTINTOとしてデータをエクスポートする