오라클12c(Oracle 12c) Top-n, Fetch 사용하기, Row
Limiting
오라클자바커뮤니티에서 설립한
오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝,
힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)
Top-n
구는 정렬된 데이터에서 Top에서 Bottom으로 정해진 숫자만큼 데이터를 추출 하는
것이다. MySQL이라면 다음과 같이
Limit 구를 사용하여 Top-n을 구현했었다.
SELECT *
FROM table
ORDER BY
column
LIMIT 0 ,
40
Oracle
12c의 Top-N 쿼리의 기본 문법은 다음과
같다.
[
OFFSET offset { ROW | ROWS } ]
[
FETCH { FIRST | NEXT } [ { rowcount | percent PERCENT }
]
{
ROW | ROWS } { ONLY | WITH TIES } ]
위
MySQL의 Limit 구문처럼 정통적인 Top-N 쿼리 구현은
간단하다.
Select * from
mytable order by num
num
----
1
1
2
2
3
3
4
4
.
.
10
10
Select
num
From
mytable
Order by
num
Fetch first 3
rows only;
10
10
9
다음 쿼리를
보자
Select num
From
mytable
Order by num
Fetch first 3 rows with ties;
10
10
9
9
위 SQL
ties 구문에 의해 같은 9라는 값을 가진 다른 데이터도 같이
선택된다.
다음 예문을
보자
Select
num
From
mytable
Order by
num
Fetch first 10
percent rows only;
1
1
댓글 없음:
댓글 쓰기