Problem
문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
예시
예를 들어 ANIMAL_INS 테이블이 다음과 같다면
가장 늦게 들어온 동물은 Anna이고, Anna는 2013-11-18 17:03:00에 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.
시간
2013-11-18 17:03:00
※ 컬럼 이름(위 예제에서는 "시간")은 일치하지 않아도 됩니다.
Code
#1. 비효율적인 코드
Idea
DATETIME 이 가장 큰 행을 불러와야 한다.
WHERE절에서 서브쿼리를 써서 가장 큰 DATETIME 을 찾았다.
하지만 이는 비효율적인 코드이다.
Code
SELECT DATETIME AS 시간
FROM ANIMAL_INS
WHERE DATETIME = (SELECT MAX(DATETIME) FROM ANIMAL_INS);
SQL
복사
그냥 아래처럼 한 줄로 가능하다.
SELECT max(datetime) as 시간 from animal_ins;
SQL
복사
#2. LIMIT 사용
Idea
최댓값이나 최솟값을 뽑으면 되는 것이므로, ORDER BY 로 정렬을 한 다음에 LIMIT 1 을 걸어주면 된다.
Code
SELECT DATETIME AS 시간
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1
SQL
복사