ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.