使用CITY和COUNTRY表,查询所有大洲的名称(COUNTRY.Continent)及其各自的平均城市人口(CITY.Population),四舍五入到最接近的整数。
注意:CITY.CountryCode和COUNTRY.Code是匹配的键列。
国家模式
城市图则
接受一个
select COUNTRY.CONTINENT, FLOOR(AVG(CITY.POPULATION))
FROM COUNTRY , CITY WHERE COUNTRY.CODE = CITY.COUNTRYCODE GROUP BY COUNTRY.CONTINENT;
我们知道,在国家/地区表中,给出了每个国家/地区的人口,我们可以使用 国家表本身在这里,所以我为什么对此给出错误的答案?
SELECT C1.CONTINENT , FLOOR(AVG(C1.POPULATION))
FROM COUNTRY C1,COUNTRY C2 WHERE C1.CODE=C2.CODE GROUP BY C1.CONTINENT;
答案 0 :(得分:2)
在第一个查询中,您正在计算每个大陆的平均城市人口。
第二个查询是不同的,因为它可以计算每个大陆的平均国家人口(nb:无需加入即可获得该结果,对COUNTRY的简单汇总查询为足够)。
关于(第一个)查询的注释:始终使用显式JOIN语法而不是隐式的老式JOIN。使用表别名也是一个好习惯:它们使查询更具可读性
考虑:
SELECT
co.CONTINENT,
FLOOR(AVG(ci.POPULATION))
FROM COUNTRY co
INNER JOIN CITY ci ON co.CODE = ci.COUNTRYCODE
GROUP BY co.CONTINENT