본문 바로가기
개발일지/SQL

*매우중요 oracle developer 문제풀이8. GROUP BY, HAVING, WHERE

by 개발에정착하고싶다 2022. 9. 9.
320x100

# SQL GROUP BY 문제

문제1. 도시 목록에서 지역별 인구수를 구하라.

SELECT SUM(popu) AS 인구수, region AS 지역명
FROM tcity
GROUP BY region
ORDER BY 인구수 DESC;



문제2. 각 지역에서 가장 넓은 면적을 구하되 단 인구가 50만 이상인 도시만 대상으로 한다

# 내코드
SELECT name AS 도시이름, region AS 지역, area AS 면적, popu AS 인구수
FROM tcity
WHERE popu >= 50
GROUP BY region;
실패

# 답안코드
SELECT region, MAX(area)
FROM tcity
WHERE popu > 50
GROUP BY region;

음... 내가 너무 복잡하게 생각했나보다.
한편으로는 내가 표현하고 싶었던 것을 구현 할 수 있을때까지
이해해야겠다.



문제3. 각 지역별 평균 면적을 구하되 평균 면적이 1000 이상인 지역만 출력하라

SELECT region AS 지역, AVG(area) AS 평균면적
FROM tcity
GROUP BY region
HAVING AVG(area) >= 1000;

이상하게 이건 WHERE가 먹질 않는다. 이유는 모르겠다.

300x250