프로그래머스 코딩테스트/SQL 고득점 kit
Programmers 상위 n개 레코드 (SELECT/Level 1)
dev스카이
2022. 6. 25. 23:04

문제 설명
보호소에 가장 먼저 들어온 동물의 이름을 조회한다.
문제 풀이
- SELECT문에 동물의 이름(NAME)을 적는다.
- FROM절에 보호소 테이블인 ANIMAL_INS를 적는다.
- 가장 먼저 들어온 동물을 조회하는 조건이 있으므로, 보호시작일(DATETIME)이 가장 오래된 것을 찾으면 된다. 이때, DATETIME이 최소인 것을 검색하면 되는데 WHERE절에서는 집계함수를 사용할 수 없다.
- 따라서 서브 쿼리를 이용한다. 서브 쿼리는 하나의 쿼리문에 포함되어 있는 또 다른 쿼리문이다. 사용하는 방법은 WHERE절에서 칼럼명 뒤에 IN을 적어주고 괄호 안에 다른 쿼리문을 적는다. IN은 괄호 내에서 일치하는 것이 있으면 TRUE로 평가된다.
Solution
SELECT NAME FROM ANIMAL_INS WHERE DATETIME IN(SELECT MIN(DATETIME) FROM ANIMAL_INS);
※WHERE 절에 IN 대신 '='로도 가능하다.
