Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 通过在单个查询中使用多个组_Mysql_Sql_Group By - Fatal编程技术网

Mysql 通过在单个查询中使用多个组

Mysql 通过在单个查询中使用多个组,mysql,sql,group-by,Mysql,Sql,Group By,我有两个查询来获取count=1和count=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; 请帮帮我…提前谢谢 SELECT CASE WHEN c <= 1 THEN "<=1"

我有两个查询来获取count=1和count=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;
请帮帮我…提前谢谢

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

您需要将第一个计数放入子查询:

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

您需要将第一个计数放入子查询:

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

我可以在这里指定条件吗?这是在INhere中,例如我指定了1和2。但是我有类似于=2的条件,请看我前面的问题,因为您的表中有12个不同的族,它们每个只有一行。我可以在这里指定条件吗。这是在INhere中,例如,我指定了1和2。但我有类似于=2的条件,请看我前面的问题,因为在您的表中有12个不同的族,它们每个只有一行。