1일 1쿼리 - 13

-- 문제 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;

'MySQL > 1일 1쿼리' 카테고리의 다른 글

1일 1쿼리 - 14  (0) 2024.07.19
1일 1쿼리 - 12  (0) 2024.07.15
1일 1쿼리 - 11  (1) 2024.07.12
1일 1쿼리 - 10  (0) 2024.07.11
1일 1쿼리 - 9  (0) 2024.07.10