Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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使用count和distinct count_Mysql_Sql_Count_Distinct - Fatal编程技术网

mysql使用count和distinct count

mysql使用count和distinct count,mysql,sql,count,distinct,Mysql,Sql,Count,Distinct,早些时候有人问我这个问题,但我一直无法回答 假设我们有一张有客户和他们居住城市的桌子 如果我想查询城市的唯一数量,以及每个城市出现的次数,该怎么办 更清楚地说: Toronto Toronto Toronto Oshawa Oshawa 不同城市:2个 多伦多:3 大泽:2 答案可能很简单,我现在脑子里乱七八糟的 为此使用分组依据 select city, count(*) from clients group by city 为此使用分组方式 select city, count(*)

早些时候有人问我这个问题,但我一直无法回答

假设我们有一张有客户和他们居住城市的桌子

如果我想查询城市的唯一数量,以及每个城市出现的次数,该怎么办

更清楚地说:

Toronto
Toronto
Toronto
Oshawa
Oshawa
不同城市:2个
多伦多:3
大泽:2

答案可能很简单,我现在脑子里乱七八糟的

为此使用分组依据

select city, count(*) from clients group by city

为此使用分组方式

select city, count(*) from clients group by city

以下是选择不同城市的sql:

select distinct city from Clients;

以下是用于选择名称以及名称数量的sql:

select city, count(*) from Clients group by city;

以下是选择不同城市的sql:

select distinct city from Clients;

以下是用于选择名称以及名称数量的sql:

select city, count(*) from Clients group by city;

这将为每个城市返回一行,其中包含城市名称和城市出现的次数:

SELECT 
    city,
    COUNT(*) 
FROM clients
GROUP BY city
城市总数只是查询返回的行数。如果你真的想让它出现在记录集中,我可以想出两种方法(我都不特别喜欢)

  • 联合查询:

    SELECT 'CITIES' as city, COUNT(DISTINCT city) 
    FROM clients
    UNION
    SELECT city, COUNT(*) 
    FROM clients
    GROUP BY city
    
  • SELECT
    子句的子查询:

    SELECT 
      (SELECT COUNT(DISTINCT city)) AS all, 
      city,
      COUNT(*) 
    FROM clients
    GROUP BY city
    

  • 这将为每个城市返回一行,其中包含城市名称和城市出现的次数:

    SELECT 
        city,
        COUNT(*) 
    FROM clients
    GROUP BY city
    
    城市总数只是查询返回的行数。如果你真的想让它出现在记录集中,我可以想出两种方法(我都不特别喜欢)

  • 联合查询:

    SELECT 'CITIES' as city, COUNT(DISTINCT city) 
    FROM clients
    UNION
    SELECT city, COUNT(*) 
    FROM clients
    GROUP BY city
    
  • SELECT
    子句的子查询:

    SELECT 
      (SELECT COUNT(DISTINCT city)) AS all, 
      city,
      COUNT(*) 
    FROM clients
    GROUP BY city
    

  • 当然,非常感谢,真不敢相信我竟然想不起来!当然,非常感谢,真不敢相信我竟然想不起来!