Average Population of Each Continent & Weather Observation Station 11

는는·2023년 2월 16일
0

SQL - 문제 풀이

목록 보기
30/77
post-thumbnail

Average Population of Each Continent

https://www.hackerrank.com/challenges/average-population-of-each-continent/problem?isFullScreen=true

두 테이블을 조인해서, 평균 도시 인구수를 값을 내림 해주면 됩니다.

처음에 조인으로 두 테이블을 합쳐줍니다.

CITY.CountryCode and COUNTRY.Code are matching key columns.
CITY.CountryCode와 COUNTRY.Code가 같다고 하니까 그 기준으로 inner join 해줍니다.

SELECT *
FROM city A JOIN country B ON A.countrycode = B.code

지정된 컬럼, 모든 대륙의 이름(COUNTRY.Continent)과 각 대륙의 평균 도시 인구(CITY.Population)를 구합니다.
평균은 AVG함수를 이용해 구하고, 내림 floor를 이용해서 구합니다.

SELECT B.Continent,floor(AVG(A.population))

대륙의 이름 기준으로 GROUP BY 해주면 정답입니다.

SELECT B.Continent,floor(AVG(A.population))
FROM city A JOIN country B ON A.countrycode = B.code
GROUP BY B.continent

Weather Observation Station 11

https://www.hackerrank.com/challenges/weather-observation-station-11/problem?isFullScreen=true


모음으로 시작하지 않거나 모음으로 끝나지 않는 도시 이름 조회하는 문제입니다.

모음 단어는 a, e, i, o, u 이고 WHERE절에서 NOT LIKE를 이용해 모음으로 시작 하지 않는 도시 이름을 불러 오겠습니다.

SELECT city
FROM STATION
WHERE city NOT LIKE 'a%' AND
city NOT LIKE 'e%' AND
city NOT LIKE 'i%' AND
city NOT LIKE 'o%' AND
city NOT LIKE 'u%'

모음 단어로 끝나지 않는 단어를 불러와야하는데요 ! 시작하지 않거나의 조건 OR를 사용해 가져와야합니다.

OR
city NOT LIKE '%a' AND
city NOT LIKE '%e' AND
city NOT LIKE '%i' AND
city NOT LIKE '%o' AND
city NOT LIKE '%u'

이제 모두 합쳐주고, 중복된 이름을 제거해주면 정답입니다.

SELECT DISTINCT city
FROM STATION
WHERE city NOT LIKE 'a%' AND
city NOT LIKE 'e%' AND
city NOT LIKE 'i%' AND
city NOT LIKE 'o%' AND
city NOT LIKE 'u%' OR
city NOT LIKE '%a' AND
city NOT LIKE '%e' AND
city NOT LIKE '%i' AND
city NOT LIKE '%o' AND
city NOT LIKE '%u'

0개의 댓글