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);
我的代码有什么问题
我是 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);
我的代码有什么问题