You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL单查询统计多值:如何一次性统计指定国家代码的城市数

解决方案:一次性统计多个国家的城市数量

嗨,这个需求其实用SQL的GROUP BY子句就能完美解决!我们可以通过分组统计来一次性得到指定国家的城市数量,不用多次单独查询。

核心SQL语句

SELECT CountryCode, COUNT(Name) AS city_count
FROM city
WHERE CountryCode IN ('AFG', 'NLD', 'IND')
GROUP BY CountryCode;

语句解释

  • WHERE CountryCode IN ('AFG', 'NLD', 'IND'):先过滤出我们需要统计的三个国家的城市数据,避免处理无关行,提升查询效率。
  • GROUP BY CountryCode:将过滤后的数据按照国家码分组,把同一个国家的所有城市归为一组。
  • COUNT(Name) AS city_count:统计每组内的城市数量,并用city_count给结果列起一个更直观的别名。

预期结果

执行这条SQL后,你会得到清晰的分组统计结果:

CountryCodecity_count
AFG2
NLD3
IND3

扩展:处理无数据的国家(可选)

如果需要确保即使某个指定国家没有城市数据,也能在结果中显示该国家码和0,可以用子查询生成目标国家列表,再通过LEFT JOIN实现:

SELECT c.country_code, COUNT(ct.Name) AS city_count
FROM (
    SELECT 'AFG' AS country_code UNION ALL
    SELECT 'NLD' UNION ALL
    SELECT 'IND'
) c
LEFT JOIN city ct ON c.country_code = ct.CountryCode
GROUP BY c.country_code;

这样即使某个国家在city表中没有记录,结果里也会显示该国家码和0,不会被过滤掉。

内容的提问来源于stack exchange,提问作者Saurabh Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:30:10