https://www.hackerrank.com/challenges/average-population-of-each-continent/problem?isFullScreen=true

 

Average Population of Each Continent | HackerRank

Query the names of all continents and their respective city populations, rounded down to the nearest integer.

www.hackerrank.com

코드설명

INNER JOIN + ROUND 를 활용합니다.

 

COUNTRY 와 CITY는 1 : N 관계입니다.

그렇기에 JOIN을 한뒤 COUNTRY의 CONTIENT값으로 GROUP BY 할시 하나의 CONTINENT값에 여러개의 CITY 레코드가 연관됩니다.

이를 활용하여 COUNTRYCODE로 GROUP BY 한뒤 그와 연관된 도시들의 인구 평균을 출력합니다. 이때 ROUNDED DOWN은 버림을 의미하므로 평균값에서 -0.5 를 한뒤 반올림처리하면 버림과 같습니다.

(또한, GROUP BY 할시에는 항상 GROUP BY 에 있는 컬럼 혹은 집계함수를 사용한 컬럼만 조회할 수 있다는 점을 유의합시다.)

ORACLE 코드

SELECT CO.CONTINENT, ROUND(AVG(C.POPULATION) - 0.5, 0)
FROM CITY C
INNER JOIN COUNTRY CO
ON C.COUNTRYCODE = CO.CODE
GROUP BY CO.CONTINENT;

+ Recent posts