류나의 갓생살기

20대의 마지막을 갓생으로 장식하기

Data Science/SQL

[HackerRank] SQL - Weather Observation Station 3

Ryuna (류준범) 2020. 8. 3. 02:16

www.hackerrank.com/challenges/weather-observation-station-3/problem

 

Weather Observation Station 3 | HackerRank

Query a list of unique CITY names with even ID numbers.

www.hackerrank.com

어저께 D사의 데이터 과학자 코딩테스트를 보고 멘붕이 왔습니다... SQL 문제가 생각보다 어려워서요. 익숙하면 금방 풀 텐데 SQL을 마지막으로 다뤄 본지가 꽤 되어서 그런지 많이 헤맸습니다. 그리고 결국 못 풀었죠.

그래서 SQL을 다시 공부하려고 노트북 앞에 앉았습니다. SQL 연습 사이트 목록을 뒤적이다가 해커랭크를 발견했고, 곧바로 연습을 시작했습니다.

'Weather Observation Station 3'은 저를 처음으로 구글링하게 만든 문제였습니다.


문제의 핵심은 3가지입니다.

- CITY column만을

- 짝수 ID를 가진 row만을

- 중복은 제거

이 중 CITY column만을 보여달라는 것은 간단합니다.

SELECT CITY 하면 되거든요.

 

짝수 ID를 가진 row만을 보여달라는 부분은...

제가 다루는 Oracle의 경우, % 연산자를 사용할 수 없습니다.

따라서 MOD (또는 REMAINDER. 둘이 기능이 같음) 함수를 써야 하는데,

WHERE MOD(ID, 2) = 0 으로 쓰면 맞습니다.

 

마지막으로 중복 제거. 이 조건을 무시하면 틀린 답이 나옵니다.

DISTINCT 키워드를 사용해서,

SELECT DISTINCT CITY 라고 쓰면 정답입니다.

SELECT DISTINCT CITY
FROM STATION
WHERE MOD(ID, 2) = 0;

 

답을 알면 간단하지만, 모르면 헤매게 되는 문제가 아닌가 싶습니다^^

앞으로도 해커랭크나 다른 사이트의 문제를 풀면서 헤맸던 문제를 포스팅하도록 하겠습니다. 잘 부탁드립니다!

'Data Science > SQL' 카테고리의 다른 글

프로그래머스 SQL 고득점 Kit  (0) 2020.07.19
모두의 SQL: 후기  (0) 2020.07.19