반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
예시는 상위 N개의 레코드를 구하는 문제입니다.
Oracle) WHERE rownum = N
MySQL) LIMIT N
ORDER BY col
먼저 특정 컬럼에 대해 오름차순/내림차순 정렬 후 N개의 레코드만 뽑아냅니다.
Orcale은 rownum의 개수를 한정해서 상위 N개의 레코드를 추출하고, MySQL는 LIMIT문을 이용해서 추출합니다.
3. 코드
SELECT NAME
FROM (SELECT * FROM ANIMAL_INS ORDER BY DATETIME)
WHERE rownum = 1;
오라클은 하위 질의를 이용해서 해당 질의 테이블의 상위 N개의 레코드를 뽑아냅니다. 단순히 WHERE rownum을 하면 오류가 납니다.
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1
MySQL은 보다 코드가 단순합니다. LIMIT로 상위 N개를 결정합니다.
반응형
'Data Engineering > SQL' 카테고리의 다른 글
[Oracle/Tibero] 여러 개의 테이블을 조인해서 업데이트 (2개 이상) (0) | 2023.03.15 |
---|---|
[SQL] 문자열 변환함수 To_Char()와 형식(Format) - 오라클(Oracle) (0) | 2022.03.09 |
[SQL] DISTINCT 중복 제거하기 - 오라클(Oracle) (0) | 2022.03.08 |
[SQL] Having 그룹핑 조건 설정하기 - 오라클(Oracle) (0) | 2022.03.07 |
[SQL] 특정 칼럼으로 묶기 Group by - 오라클(Oracle) (0) | 2022.03.06 |
댓글