SQL 内连接和平均

Inner join and average in SQL

我是 SQL 的新手,所以才有这个问题。我正在尝试查询以下内容。给定 CITY 和 COUNTRY tables,查询所有大洲的名称 (COUNTRY.Continent) 及其各自的平均城市人口 (CITY.Population) 四舍五入到最接近的整数。 table 模式是 City: id, name, countryside, population

Country: code, name,continent, population

我已经写了内连接,但似乎无法弄清楚获取 avg 城市人口的方法。这是我的代码。

SELECT COUNTRY.CONTINENT
FROM COUNTRY 
INNER JOIN ON 
COUNTRY.CODE = CITY.COUNTRYCODE;

感谢任何帮助。

好的。这是解决方案。

Select Country.Continent, floor(Avg(city.population))
  From Country 
     Inner Join City
        On Country.Code = City.CountryCode
  Group By Country.Continent;

在这里,我们必须按大洲分组,以大洲为关键标识符的结果集,然后将 AVG 函数应用于属于该大洲的城市的人口。

SELECT
    COUNT(*) over (partition by c.Code)
    ,SUM(ci.Population)/COUNT(*) over (partition by c.Code)
FROM Country c
INNER JOIN City ci on ci.CountryCode = c.CountryCode
GROUP by c.CODE

我还没有对此进行测试,所以如果需要稍微调整一下,我深表歉意。这里的概念是按国家代码分组,因为您正在寻找特定或个别国家代码内的平均人口。

select COUNTRY.CONTINENT,floor(avg(CITY.POPULATION))
from CITY,COUNTRY
where CITY.CountryCode=COUNTRY.Code
group by COUNTRY.CONTINENT;

这是最基本的 sql 查询。
思路:一个大陆有几个城市,我们要求城市的平均人口。我们必须将大洲分组并找到它们的平均城市人口。

注意:对于这个问题(HACKERRANK PROBLEM),ROUND() 函数会给出错误的答案。

select CONTINENT ,floor(AVG(CITY.POPULATION)) 
from CITY,COUNTRY  
where COUNTRYCODE IN (Select CODE ,from COUNTRY and GROUP BY COUNTRY.CONTINENT);  

我的代码有什么问题