투케이2K

126. (Oracle/오라클) row_number 사용해 소그룹 별 순번 부여 및 부서 별 최대 나이 정보 출력 실시 본문

OracleDB

126. (Oracle/오라클) row_number 사용해 소그룹 별 순번 부여 및 부서 별 최대 나이 정보 출력 실시

투케이2K 2021. 4. 25. 17:18

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : Toad

개발 언어 : Oracle

/* =========================== */

/* =========================== */

[소스 코드]

 

/*
[row_number 사용해 소그룹 별 순번 부여 및 부서 별 최대 나이 정보 출력 실시]
1. row_number() : 그룹 내에서 순번을 표시할때 사용합니다
2. row_number() 는 같은 값이 있더라도 서로 다른 번호로 출력됩니다 (20나이가 2명이어도 1, 2 순위 부여)
3. rnum = 1 의미는 소그룹 별 즉, 부서 별 최대 연장자 정보 1명만 출력하겠다는 의미입니다
4. row_number() over(partition by 소그룹 order by 정렬 기준 desc) 의미입니다
*/

select t_dept, t_name, t_age
    from (select t_dept, 
                 t_name, 
                 t_age,
                 row_number() over(partition by t_dept order by to_number(t_age) desc) as rnum
          from test_user) 
where rnum = 1;

/* =========================== */

[결과 출력]

/* =========================== */

/* =========================== */

[요약 설명]

1. row_number() : 그룹 내에서 순번을 표시할때 사용합니다

2. row_number() 는 같은 값이 있더라도 서로 다른 번호로 출력됩니다 (20나이가 2명이어도 1, 2 순위 부여)

3. rnum = 1 의미는 소그룹 별 즉, 부서 별 최대 연장자 정보 1명만 출력하겠다는 의미입니다

4. row_number() over(partition by 소그룹 order by 정렬 기준 desc) 의미입니다

/* =========================== */

 

반응형
Comments