-- 문제 1 : 각 대륙에서 평균 수명이 가장 높은 국가의 이름과 그 평균 수명 (서브쿼리 사용)
SELECT Continent, Name, LifeExpectancy
FROM country
WHERE (Continent , LifeExpectancy) IN (
SELECT Continent, MAX(LifeExpectancy)
FROM country
GROUP BY Continent);
-- 문제 2 : 각 대륙에서 평균 수명이 가장 높은 국가의 이름과 그 평균 수명 (서브쿼리 사용 x)
SELECT c1.Continent, c1.Name, c1.LifeExpectancy
FROM country c1
LEFT JOIN country c2 ON c1.Continent = c2.Continent
AND c1.LifeExpectancy < c2.LifeExpectancy
WHERE c2.Continent IS NULL
AND c1.LifeExpectancy IS NOT NULL;
-- 문제 3 : 공식 언어가 3개 이상인 국가의 이름과 그 공식 언어 수
SELECT c.Name AS country, COUNT(cl.Language) AS count
FROM country c
JOIN countrylanguage cl ON c.Code = cl.CountryCode
WHERE cl.IsOfficial = 'T'
GROUP BY cl.CountryCode
HAVING count >= 3;
-- 문제 4 : 인구 밀도(인구/면적)가 가장 높은 국가의 이름과 인구 밀도
SELECT Name, Population / SurfaceArea AS Population_Density
FROM country
ORDER BY Population_Density DESC
LIMIT 1;
-- 문제 5 : 전체 인구 대비 도시의 인구 비율이 가장 높은 국가의 이름과 그 비율
SELECT Continent, Name, GNP
FROM country
WHERE (Continent, GNP) IN (
SELECT Continent, MAX(GNP)
FROM country
GROUP BY Continent
)
AND GNP != 0;