문제
다음과 같은 테이블 ANIMAL_INS가 주어진다.
동물 보호소에 가장 먼저 들어온 동물이 언제 들어왔는지를 조회하라.
내 코드:
SELECT DATETIME
FROM (SELECT *
FROM ANIMAL_INS
ORDER BY DATETIME)
WHERE ROWNUM=1;
Comment: '언제' 들어왔는지를 조회하는 것이므로 DATETIME을 조회해야 합니다. 가장 먼저 들어온 동물을 찾기 위해서는 ORDER BY를 통해 DATETIME을 기준으로 테이블을 정렬하고, ROWNUM으로 첫 번째 값을 꺼내면 됩니다. 하지만 ORDER BY의 실행 순서는 가장 나중이므로, 그냥 썼다가는 엉뚱한 값을 조회할 수 있습니다.
이 때는 FROM 뒤에 괄호를 열어 미리 정렬을 해주는 것으로 순서를 앞당기고, 정답값을 조회할 수 있습니다. DATETIME 뒤에 DESC를 붙이지 않도록 주의하세요.
'Database' 카테고리의 다른 글
[Programmers]고양이와 개는 몇 마리 있을까(풀이 성공) (0) | 2021.05.24 |
---|---|
[Programmers] NULL 처리하기(풀이 성공) (0) | 2021.05.12 |
[MySQL]기본값 utf8로 설정하기 (0) | 2021.05.04 |
[MySQL]git 저장소의 DB와 로컬 DB 연결하기 (0) | 2021.05.04 |
[Oracle]Weather Observation Station 17(풀이 성공) (0) | 2021.04.16 |