본문 바로가기
Problem Solving/프로그래머스 SQL

[프로그래머스 SQL] 상위 n개 레코드

by Libi 2021. 8. 10.
반응형

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

 

코딩테스트 연습 - 상위 n개 레코드

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

[ 문제풀이 ]

조건에 맞는 튜플을 뽑을 수 있는지 묻는 문제이다.

1개의 값만 뽑는 것이기 때문에 대표적으로 서브 쿼리 + MIN()을 사용하는 방법과 ORDER BY + LIMIT를 사용하는 2가지 방법이 있다.

따로 찾아보니 두 방법이 크게 성능 차이가 나지는 않는다고 한다. 다만, 전자의 방법은 하나의 컬럼을 나타내기 때문에 여러 컬럼을 나타내야 한다면 후자의 방법이 더 좋다고 한다.

/* ORDER BY + LIMIT */
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1;

/* SubQuery + MIN() */
SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS);

 

 

반응형

댓글