www.hackerrank.com/challenges/weather-observation-station-3/problem
어저께 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 |