프로그래머스 문제
문제 목표
가장 최근에 들어온 동물은 언제들어왔는지 조회하는 SQL문을 작성해주세요
답안 코드 (ORACLE)
SELECT DATA.DATATIME
FROM (
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME DESC
) DATA
WHERE ROWNUM=1
ORACLE에서는 출력 개수를 제어하기 위해 ROWNUM 키워드를 사용할 수 있습니다
하지만 ROWNUM과 ORDER BY가 같이 사용될 경우 ROWNUM이 선행됩니다
만약 코드를 아래와 같이 작성하였다면 채점 시 틀렸다는 알림창이 나타날 것입니다
SELECT DATETIME
FROM ANIMAL_INS
WHERE ROWNUM=1
ORDER BY DATETIME DESC
원하는 결과는 DATETIME을 최근 순서로 정렬하고 첫번째 결과만을 확인하는 것이므로
답안 코드처럼 작성하면 명시적으로 ORDER BY 후 ROWNUM = 1을 출력하는 결과를 얻을 수 있습니다
답안 코드 (MySQL)
SELECT DATETIME
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1
MySQL은 LIMIT 키워드를 통해 아주 간단히 출력을 제어할 수 있습니다
ORDER BY를 통해 최신순으로 정렬 후 LIMIT 1 을 통해서 1개만 출력합니다
* 화면 출력 제어에 관해서는 명백하게 MySQL이 편한 것 같습니다
'Programmers' 카테고리의 다른 글
파이썬 알고리즘 정리 (0) | 2020.05.29 |
---|---|
[Level 1][SQL] 모든 레코드 조회하기 (0) | 2020.03.14 |
[Programmers] 프로그래머스 문제풀이를 공유해도 될까? (0) | 2020.03.12 |