https://school.programmers.co.kr/learn/courses/30/lessons/59405

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

머리를 좀 써야하는 문제입니다. 두가지 풀이가 가능합니다.

 

 

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

+ Recent posts