SQL世界数据库;寻找至少有五个国家人口超过1000万的地区
我正在使用pgAdmin 3中的一个数据库,它位于一个名为“country”的表中,该表有五列:名称、地区、面积、人口、gdp。Name是国家的名称。区域是该国家所在的世界范围内的区域(例如,欧洲、中东、大洋洲等)。面积、人口和gdp是那个国家的属性 我试图选择至少有5个国家人口超过1000万的地区 我已经找到了如何选择人口超过1000万的国家:SQL世界数据库;寻找至少有五个国家人口超过1000万的地区,sql,postgresql,Sql,Postgresql,我正在使用pgAdmin 3中的一个数据库,它位于一个名为“country”的表中,该表有五列:名称、地区、面积、人口、gdp。Name是国家的名称。区域是该国家所在的世界范围内的区域(例如,欧洲、中东、大洋洲等)。面积、人口和gdp是那个国家的属性 我试图选择至少有5个国家人口超过1000万的地区 我已经找到了如何选择人口超过1000万的国家: SELECT name FROM country WHERE population > 10000000 我知道如何计算每个地区的国家数量
SELECT name
FROM country
WHERE population > 10000000
我知道如何计算每个地区的国家数量:
SELECT region, count(name)
FROM country
GROUP BY region
但就我个人而言,我不知道如何以某种方式合并这两个查询以获得我想要的结果
到目前为止,我最接近的是找到至少有5个国家的地区
SELECT region, count(name)
FROM country
GROUP BY region
HAVING count(name) > 5
我的问题是如何创建一个查询,显示5个或更多人口超过1000万的国家
PS:我正在尝试在一个查询中不创建视图的情况下执行此操作。您可以将
WHERE
和have
组合起来:
SELECT region, count(name)
FROM country
WHERE population > 10000000
GROUP BY region
HAVING count(name) > 5
试试这个
SELECT region, count(name)
FROM country
WHERE population > 10000000
GROUP BY region
HAVING count(name) > 5
你试过这个吗
SELECT region, count(name)
FROM country
WHERE population > 10000000
GROUP BY region
HAVING count(name) > 5
选择至少有5个国家人口超过1000万的地区 在HAVING子句中使用条件计数可以做到这一点
SELECT
region,
COUNT(*) AS TotalCountries,
COUNT(CASE WHEN population > 10000000 THEN 1 END) AS TotalOverMillionCountries
FROM country
GROUP BY region
HAVING COUNT(CASE WHEN population > 10000000 THEN 1 END) > 5
或者只是没有总数的地区
SELECT region
FROM country
GROUP BY region
HAVING COUNT(CASE WHEN population > 10000000 THEN 1 END) > 5
在上次查询中添加
where
子句。谢谢!我觉得自己像个傻瓜,忘记了我可以插入WHERE子句。我一直试图把所有的事情都纳入HAVING条款中,并且在兜圈子。