개발 일지/SQL_ORACLE
[프로그래머스] 상위 n개 레코드_ORACLE
박빙수_
2024. 9. 22. 23:54
프로그래머스 Lv.1 상위 n개 레코드
문제:
동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
Point:
rownum을 활용하여 푸는 문제다.
1) 첫 시도
SELECT NAME
FROM ANIMAL_INS
WHERE rownum = 1
ORDER BY DATETIME;
결과:
SQL 실행 중 오류가 발생하였습니다.
Unknown column 'rownum' in 'where clause'
분석:
ORDER BY가 가장 마지막에 적용되는 라인인데, 이걸 무시하고 Where절에서 rownum을 걸어놓고 완료했다고 생각했다.
2) 두 번째 시도
SELECT a.NAME
FROM (SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME) a
WHERE ROWNUM <= 1
변화지점:
애초에 정렬이 된 것을 불러오면 문제가 사라질 것 같다. 서브쿼리로 데이터를 정렬시킨 테이블에서 NAME을 가져오는 방식을 채택했다.
결과:
name
Jack |
성공!