#1 Total world population
SUM 함수 사용
SELECT SUM(population)
FROM world
#2 List of continents
DISTINCT 중복을 제거
SELECT DISTINCT continent
FROM world
#3 GDP of Africa
아프리카 대륙의 gdp합 구하기
SELECT SUM(gdp)
FROM world
WHERE continent = 'Africa'
#4 Count the big countries
지역 넓이가 1000000보다 큰 지역의 수 구하기
COUNT 함수 사용
SELECT COUNT(area)
FROM world
WHERE area > 1000000
#5 Baltic states population
여러 나라의 인구 수 합 구하기
SUM 함수 사용
SELECT SUM(population)
FROM world
WHERE name in ('Estonia', 'Latvia', 'Lithuania')
#6 Using GROUP BY and HAVING
각 대륙의 포함된 나라의 수를 구하기
GROUP BY로 대륙별로 묶은 다음, 이름 수를 카운트 하면 된다.
SELECT continent, COUNT(name) AS 'count'
FROM world
GROUP BY continent
#7 Counting big countries in each continent
여기서 HAVING을 사용하면 안된다.
HAVING은 그룹된 데이터에 조건을 거는 것이고
WHERE은 전체 데이터에 조건을 거는 것이다.
HAVING에서 population > 10000000 조건을 건다면, 오류가 난다.
이는 population이 continent로 그룹 되어있기에 여러개 요소를 접근이 불가능하기 때문이다.
SELECT continent, COUNT(name) AS 'count'
FROM world
WHERE population > 10000000
GROUP BY continent
#8 Counting big continents
여기서 HAVING을 사용한다.
집계 함수는 WHERE 문에서 사용할 수 없는데 데이터가 여러개 선택 되어야 사용할 수 있기 때문이다.
HAVING은 그룹화 된 데이터에 접근하기 때문에 집계함수를 사용할 수 있다.
집계함수 - COUNT, SUM, AVG, MAX, MIN
SELECT continent
FROM world
GROUP BY continent
HAVING SUM(population) > 100000000
'프로그래밍 > MySQL' 카테고리의 다른 글
[MySQL] SQL ZOO More JOIN 답 해설 (0) | 2021.02.21 |
---|---|
[MySQL] SQL ZOO JOIN 답 해설 (0) | 2021.02.21 |
[MySQL] SQL ZOO SELECT within SELECT 답 해설 (0) | 2021.02.20 |
[MySQL] SQL ZOO SELECT from Nobel 답 해설 (0) | 2021.02.19 |
[MySQL] SQL ZOO SELECT basics 답 해설 (0) | 2021.02.18 |