HackerRank Weather Observation Station 5
STATION 테이블에서 가장 짧은 CITY 값과 가장 긴 CITY 값을 가진 두 도시와 각각의 길이(문자 수)를 구하는 문제이다.
가장 짧거나 긴 도시가 두 개 이상 있는 경우, 알파벳 기준으로 먼저 나오는 도시를 하나만 선택해야 한다.
가장 짧으면서 알파벳 기준으로 먼저 나오는 도시, 가장 길면서 알파벳 기준으로 먼저 나오는 도시를 각각 구한 뒤, UNION 연산을 통해 두 결과를 합쳤다.
길이와 알파벳 기준 정렬은 ORDER BY 절에서 LENGTH(CITY) ASC/DESC, CITY ASC를 활용하면 되고, 이후 LIMIT 키워드로 하나의 행만 선택하면 된다.
추가로 UNION 연산은 각 SELECT의 컬럼 수와 데이터 타입이 동일해야 정상적으로 동작한다.
(
SELECT CITY, LENGTH(CITY) AS LEN
FROM STATION
ORDER BY LENGTH(CITY) ASC, CITY ASC
LIMIT 1
)
UNION
(
SELECT CITY, LENGTH(CITY) AS LEN
FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY ASC
LIMIT 1
);