-
[ORACLE] ROW_NUMBER() OVER( )DATABASE 2018. 11. 5. 16:22
- ROW_NUMBER() OVER( PATITION BY 중복조회컬럼 ORDER BY 정렬컬럼명)
: 특정 컬럼 기준으로 순위정하기(행번호 부여하기)
ex) 교수별로 가장 오래된 날짜에 해당되는 데이터 출력
1. 교수별로 가장 오래된 날짜순으로 정렬하기
SELECT
row_number( ) over ( partition by empno order by from_dt ) rowno ,
A.*
FROM PER130TL A
2. 교수별로 가장 오래된 날짜(1건)에 해당하는 데이터 출력
SELECT *
FROM ( SELECT
row_number( ) over ( partition by empno order by from_dt ) rowno,
A.*
FROM PER130TL A )
WHERE rowno = 1
ex) 사번(RSDT_REGNO)별로 환급될 돈(DCSN_TAXAMT)이 가장 높은순에 해당하는 데이터 출력하기
1. 사번별로 환급될 돈이 높은순으로 정렬하기
SELECT
row_number( ) over ( partition by RSDT_REGNO order by DCSN_TAXAMT) maxtax ,
A.*
FROM A
2. 사번별로 환급될 돈이 가장 높은순에 해당하는 데이터 출력
SELECT
row_number( ) over (partition by RSDT_REGNO order by DCSN_TAXAMT) maxtax,
A.*
FROM A
WHERE maxtax = 1
'DATABASE' 카테고리의 다른 글
[ORACLE] LISTAGG함수 (0) 2018.11.06 [ORACLE] MERGE문 (0) 2018.11.06 [ORACLE] CONNECT BY LEVEL 활용 <달력> (0) 2018.11.05 [ORACLE] CONNECT BY LEVEL 개념 (0) 2018.11.05 [ORACLE] DECODE 와 CASE (0) 2018.11.05