데이터 분석/SQL 코테

[SQL코테/HackerRank] Weather Observation Station 17

Sheryl Yun 2024. 6. 13. 13:20

 

문제 링크

 

Weather Observation Station 5 | HackerRank

Write a query to print the shortest and longest length city name along with the length of the city names.

www.hackerrank.com

 

문제점

다음처럼 코드를 짜서 Submit은 통과했지만

이보다 더 좋은 코드가 있을 것 같아서 찾아보았다.

 

내가 작성한 코드

SELECT city, LENGTH(city) 
FROM station
WHERE LENGTH(city) = (
    SELECT MIN(LENGTH(city))
    FROM station
)
ORDER BY LENGTH(city), city
LIMIT 1;

SELECT city, LENGTH(city)
FROM station
WHERE LENGTH(city) = (
    SELECT MAX(LENGTH(city))
    FROM station
)
ORDER BY LENGTH(city), city
LIMIT 1;

 

 

새로 찾아본 코드

오름차순 정렬하고 1개를 뽑으면 최솟값, 

내림차순 정렬하고 1개를 뽑으면 최댓값이 되는 점을 이용했다.

 

ORDER BY만 잘 써도 서브쿼리와 MIN, MAX 집계 함수가 필요없어졌다.

SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) ASC, CITY ASC
LIMIT 1;

SELECT CITY, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY DESC
LIMIT 1;