https://www.hackerrank.com/challenges/asian-population/problem?isFullScreen=true
코드설명
INNER JOIN + SUM을 활용합니다.
내용을 읽고, 추론해보면 CITY 도시는 COUNTRY와 N : 1 의 관계임을 알 수 있습니다.
그러므로 COUNTRY를 기준으로 COUNTRY 레코드에 여러개의 CITY 레코드가 존재한다는걸 생각할 수 있지요.
그러므로 INNER JOIN 한뒤 CITY.POPULATION을 집계함수 SUM으로 가져오면 됩니다.
이때, WHERE 절로 CO.CONTIENT = 'ASIA'를 하고 있는데, 사실 결합조건인 ON에 CO.CONTIENT = 'ASIA'인것만 처리해도 되지만, 결합조건이라기보다는 필터링 조건으로 생각되어 WHERE조건에 넣었습니다.
ORACLE 코드
SELECT SUM(C.POPULATION)
FROM CITY C
INNER JOIN COUNTRY CO
ON C.COUNTRYCODE = CO.CODE
WHERE CO.CONTINENT = 'Asia';