SQL查询国家数量最高的REGION_ID及其对应国家总数
实现需求的SQL方案
你需要统计各区域ID对应的国家数量,仅返回数量最高的记录,可直接使用以下SQL:
SELECT REGION_ID, COUNT(COUNTRY_ID) AS Quantity FROM 替换为你的实际表名 GROUP BY REGION_ID ORDER BY Quantity DESC LIMIT 1;
逻辑说明:
- 先用
GROUP BY REGION_ID按区域ID对数据分组 - 用
COUNT(COUNTRY_ID)统计每个分组下的国家总数,别名设为Quantity - 按统计得到的国家总数倒序排序,排序后第一条就是国家数量最高的记录,用
LIMIT 1取第一条即可
如果存在多个区域的国家数量并列最高,需要全部返回的场景,可以使用窗口函数实现:
WITH region_cnt AS ( SELECT REGION_ID, COUNT(COUNTRY_ID) AS Quantity, RANK() OVER(ORDER BY COUNT(COUNTRY_ID) DESC) AS rank_num FROM 替换为你的实际表名 GROUP BY REGION_ID ) SELECT REGION_ID, Quantity FROM region_cnt WHERE rank_num = 1;
用你提供的样例数据执行上述语句,最终返回结果和你预期一致:REGION_ID为2,对应国家数量为3。
内容的提问来源于stack exchange,提问作者GnomeKing
相关产品推荐
相关产品推荐

