문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
ANIMAL_INS 테이블 구조는 다음과 같으며ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
SOLUTION
[Oracle]
1. WHERE 서브쿼리
SELECT name FROM animal_ins WHERE datetime = (SELECT min(datetime) FROM animal_ins );
WHERE문에 서브쿼리, min 함수를 이용해 datetime이 가장 오래된 레코드를 추출합니다.
2. FROM 서브쿼리
SELECT name FROM (SELECT name FROM animal_ins ORDER BY datetime) WHERE rownum = 1;
FROM문에 서브쿼리를 이용해 datetime 오름차순으로 정렬(가장 오래된 시간이 맨 윗줄에 정렬됨)하여 rownum이 1인 레코드를 추출합니다.
[MySQL]
SELECT name FROM animal_ins ORDER BY datetime LIMIT 1;
MySQL에서는 LIMIT를 이용하여 하나의 레코드를 출력하는 방법을 이용합니다.
문제출처 : 프로그래머스
'SQL' 카테고리의 다른 글
[SQL 챌린지] 해커랭크 정복하기 Day 1 (0) | 2021.02.20 |
---|---|
[SQL 챌린지] 해커랭크 정복하기 Day 1 (0) | 2021.02.20 |
[SQL/프로그래머스] 어린 동물 찾기 (0) | 2021.01.22 |
[SQL/프로그래머스] 아픈 동물 찾기 (0) | 2021.01.22 |
[SQL] 데이터 분석하기 - 구매 지표 추출 (0) | 2021.01.08 |