오라클12c(Oracle 12c) Top-n, Fetch 사용하기, Row Limiting:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
오라클자바커뮤니티에서 설립한 오라클자바커뮤니티프로그래밍 실무교육센터
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
감사합니다.
댓글 없음:
댓글 쓰기