1. 문제
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
2. 풀이
- 가장 오래된 값을 출력해야 함
- 첫번째 방법 : 스칼라 서브 쿼리를 이용
-> where 시간 = (가장 오래된 시간)
- 두번째 방법 : order by 이용
-오래된 순으로 정렬 후 가장 상위의 값 1개만 가져오기
- 오라클(ORACLE) : ROWNUM을 이용
- MYSQL : LIMIT을 이용
- SQL SERVER : TOP n을 이용
3. 답안
첫번째 방법
SELECT NAME
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MIN(DATETIME) FROM ANIMAL_INS)
두번째 방법
--ORACLE
SELECT NAME FROM
(SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC ) T
WHERE ROWNUM <= 1
--MYSQL
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
LIMIT 1
--SQL SERVER
SELECT TOP 1 NAME
FROM ANIMAL_INS
ORDER BY DATETIME ASC
반응형