我正在使用Mondial数据库架构并尝试查找:对于每个国家,找出人口最多的城市和该城市的人口。
现在我有:
SELECT Country.Name, city.name, MAX(city.population) Population
FROM city
Join Country
On Country.Code=City.Country
WHERE city.population IS NOT NULL
GROUP BY Country.Name, city.name
ORDER BY Country.Name;
这给了我每个国家的所有城市及其人口,而不仅仅是最大的城市。
6条答案
按热度按时间njthzxwz1#
使用分析函数。类似的东西应该工作(未经测试):
o2g1uqev2#
不知道在Oracle中,但如果在SQL Server中完成,可以这样做:
类似于oracle中的row_number函数将有所帮助。
希望这对你有帮助。
whlutmcx3#
这似乎工作。
根据包含聚合函数的列来过滤查询结果也很有用。
z9zf31ra4#
在这里,您已经完成了Group by Country.name,因此您可以只查看单个国家的详细信息,因此您可以按城市进行排序,而不是选择MAX(人口)。人口也可以删除www.example.com的group bycity.name
例如
这将不会给予你的国家排序的顺序,但也可以这样做后,添加另一个秩序,由它的顶部,如果你真的想国家名称也排序。
希望这有助于简化SQL查询。我在MySQL中测试过。
e4yzc0pl5#
编写SQL查询
最高填充联接- SQL
在city_populations数据集中,添加一列,告诉城市在人口方面的排名。人口最多的城市应获得排名= 1
表格名称:城市人口
1.栏目:城市纽约洛杉矶芝加哥
2.柱:州NY CA IL
3.栏目:人口估算_2012 8336697 3857799 2714856
4.列:id 1 2 3
您必须从表city_populations编写选择查询
smdnsysy6#
您不能在多个选择中使用MAX,请尝试以下操作: