https://school.programmers.co.kr/learn/courses/30/lessons/59405
머리를 좀 써야하는 문제입니다. 두가지 풀이가 가능합니다.
SELECT name
FROM animal_ins
ORDER BY datetime ASC
LIMIT 1
좀 더 쉬운 풀이는 그냥 datetime을 기준으로 정렬하고 LIMIT를 사용해 딱 하나의 row만 출력하는 겁니다.
datetime으로 오름차순 정렬후 맨 위의 row만 출력하기 때문에 당연히 가장 먼저 들어온 동물의 name이 출력됩니다.
SELECT name
FROM (
SELECT name, RANK() OVER(ORDER BY datetime ASC) AS date_rank
FROM animal_ins
) AS R
WHERE R.date_rank = 1
조금 더 복잡한 풀이는 datetime을 기준으로 정렬하고, date_rank라는 새로운 column을 RANK()를 통해 만듭니다.
즉 테이블이 동물의 name과 datetime의 순위 두개의 column을 가지게 되고 이 때 date_rank가 1인 row가 가장 먼저 들어온 동물의 정보가 됩니다.
728x90
'🔍 알고리즘 > 프로그래머스 SQL' 카테고리의 다른 글
[SQL] 프로그래머스 59035번. 역순 정렬하기 (Lv.1) (0) | 2022.09.27 |
---|---|
[SQL] 프로그래머스 59036번. 아픈 동물 찾기 (Lv.1) (0) | 2022.09.27 |
[SQL] 프로그래머스 59037번. 어린 동물 찾기 (Lv.1) (0) | 2022.09.27 |
[SQL] 프로그래머스 59404번. 여러 기준으로 정렬하기 (Lv.1) (0) | 2022.09.26 |
[SQL] 프로그래머스 59407번. 이름이 있는 동물의 아이디 (Lv.1) (0) | 2022.09.26 |