[HACKERRANK] Weather Observation Station 5

주연·2023년 4월 12일
0

SQL 문제 풀이

목록 보기
21/28
post-thumbnail
post-custom-banner

문제

https://www.hackerrank.com/challenges/weather-observation-station-5/problem

  • Note
    You can write two separate queries to get the desired output. It need not be a single query.

풀이

2개 분리된 쿼리 작성해도 된다고 했는데 뭔 말인지 모르겠어서 그냥 무시하고 풀었더니 완전 엉망으로 풀었다.
차마 코드 넣기 힘들 정도...
FROM 절에서 LENGTH구하고 WHERE절에서 MAX, MIN 구하기 위해 이중서브쿼리썼다.. 그러고도 값이 여러개면 1개 출력하는게 안 돼서 SELECT에 WINDOW쓰고 난리났었음..ㅎ 하면서도 이게 맞아? 이거 아닌거 같은데...이랬다. 근데 또 답은 맞더라...하하..

  • 강의 풀이 참고
SELECT city
    , length(city) len
FROM STATION
ORDER BY len, city
LIMIT 1;

SELECT city
    , length(city) len
FROM STATION
ORDER BY len DESC, city
LIMIT 1

이렇게 알려주셔서 했는데 답이 이상하게 나와서 커뮤니티에 글 작성했다.
이렇게 나옴.. 띠용?

글에 작성한 쿼리 복사해서 돌려봤더니 되더라라는 답변이 달려 다시 돌려봤는데 이번엔 또 된다.

그냥 일시적인 오류였나보다..

  • 다른 풀이
select city, lc
from (
    select city, length(city) as lc
        , row_number() over (order by length(city), city) as row_no_asc
        , row_number() over (order by length(city) desc, city) as row_no_desc
    from station
) a
where row_no_asc = 1 or row_no_desc = 1
order by lc

이건 다른 풀이인데 쿼리 2개 안 쓰고 하려면 row_number 사용해서 해도 좋은 듯 하다.

profile
공부 기록
post-custom-banner

0개의 댓글