0

カウント = 1 とカウント = 2 を持つファミリの数を取得するクエリが 2 つあります。

SELECT Name, count(*) as c FROM Tablename GROUP BY HOUSE_NO HAVING c<=1;


 SELECT Name, count(*) as c FROM Tablename GROUP BY  HOUSE_NO HAVING c>=2 and c<=4;

しかし、これらのクエリを単一のクエリに結合する必要があります.Like

         count1                          count2
  nooffamiliesHavingcount = 1        nooffamiliesHavingcount = 2

助けてください....よろしくお願いします..

4

2 に答える 2

2
SELECT CASE WHEN c <= 1 THEN "<=1"
            WHEN c BETWEEN 2 and 4 THEN "2-4"
       END familysize,
       COUNT(*) nooffamilies
FROM (SELECT Name, count(*) c
      FROM Tablename
      GROUP BY Name) x
GROUP BY familysize
HAVING familysize IS NOT NULL

フィドル

于 2013-04-04T10:02:44.573 に答える
2

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

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 Fiddle の例

于 2013-04-04T10:03:43.957 に答える