[TIL] MySQL TIL Day 1

최대 1 분 소요

mySQL을 오랫동안 쉬다가 다시 문제를 해결하려고 하니 잊은 부분이 많아서 블로그에 TIL로 하나씩 정리를 하려고 한다. 오늘부터 Day 1 스타뚜!

🟢 Hackerrank Weather observation station 5

https://www.hackerrank.com/challenges/weather-observation-station-5/problem?isFullScreen=true

Solution

쉬워보이지만 조금 생각해야 하는 문제! Max와 Min lenght를 가지는 city를 각각 뽑아야 하는데, 한 sql 쿼리 내에서 둘 다 뽑으려고 하면 실패한다. Max와 min을 뽑는 각각의 쿼리를 만들어 UNION하거나 세미콜론으로 이어주면 된다.

이 때, city 이름의 length를 ASC, DESC로 정렬한 후, 알파벳 순서로 city 이름을 정렬하기 위해 city ASC로 정렬해준다.(ORDER BY)

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 ASC
LIMIT 1
(SELECT city, length(city)
FROM station
ORDER BY length(city) ASC, city ASC
LIMIT 1)

UNION

(SELECT city, length(city)
FROM station
ORDER BY length(city) DESC, city ASC
LIMIT 1)

댓글남기기