[SQL]TOP-N

Database / / 2022. 4. 27. 11:23

실제컬럼/가상컬럼에 대해서 정렬후 top 또는 bottom에서 n개의 레코드를 추려낸 쿼리

 

▶  rownum

● 테이블 레코드에 대해서 부여하는 식별번호. 오라클에서 insert시에 자동으로 부여된다.
● rownum이 새로 부여되는 경우 
● 1. where절을 통해 결과집합이 변경된 경우 rownum 새로부여
● 2. inlineview를통해 조회된 경우 rownum 새로부여

 

 

● inline-view를 이용 oracle가 정한 순서를 급여순으로 정렬 후 다시 rownum을 사용 조건에 맞게 정렬

 

▶ WINDOW FUNCTION

● 행과 행간의 관계를 쉽게 정의하기 위한 함수
● select절에서만 사용가능

 

 

 

● 순위관련처리 - rank, dense_rank, row_number

● 집계관련처리 - sum, avg, max, min, count

● 순서관련처리 - first_value, last_value...

● 비율관련처리 - cume_dist, percent_rank, ntile...

● 통계관련처리 - corr, covar_pop....

 

 

 

 

순위관련

 

 

● rank | dense_rank | row_number
● rank : order by 중복된 값이 있다면, 그 다음 순위는 중복된 만큼 건너뛴다. 
● dense_rank : order by 중복된 값이 있어도 건너뛰지 않고, 순위를 부여한다.
● row_number : 중복값 없이 순위 부여

 

 

 

 

 

집계관련

● sum() over()

 

 

 avg() over()

 

 

 

 

 

 

 

'Database' 카테고리의 다른 글

[SQL]DCL,TCL  (0) 2022.04.29
[SQL] DDL,제약조건  (0) 2022.04.25
[SQL] DML  (0) 2022.04.20
[SQL] 그룹함수  (0) 2022.04.19
[SQL] join , set operator,  (0) 2022.04.18