주 컨텐츠로 이동
Workday User Guide
최종 업데이트: 2023-06-23
ROW_NUMBER

ROW_NUMBER

설명

ROW_NUMBER
행을 그룹화하고, 필드를 기준으로 행을 정렬하고, 각 그룹의 첫 번째 행에 대해 1부터 시작하는 고유한 순차적 번호를 그룹의 각 행에 지정하는 윈도우 집계 함수입니다.
ROW_NUMBER
항상 그룹의 각 행에 고유한 값을 지정합니다. 다음을 사용할 수 있습니다.
ROW_NUMBER
- 데이터세트의 각 행에 대해 고유한 ID를 생성합니다.
다음
PARTITION BY
절은 입력 행 세트를 그룹으로 분할하는 데 사용할 필드를 결정합니다.
다음
ORDER BY
절은 순차 번호가 지정되기 전에 파티션의 행을 정렬하는 방법을 결정합니다.
Workday는 분할 필드에 따라 입력 행을 그룹화하고 순서 필드에 따라 행을 정렬한 다음, 각 그룹의 집계 표현식(이 함수의 경우 행 번호 매기기)을 계산합니다. 각 그룹에서 번호가 매겨진 행은 1에서 시작합니다.

구문

ROW_NUMBER
()
OVER
(
PARTITION BY
partitioning_field
[,
partitioning_field
]
ORDER BY
ordering_field
[ASC | DESC] [,
ordering_field
[ASC | DESC]] )

반환 값

유형의 값을 반환합니다.
INTEGER
.

입력 매개변수

OVER()
필수입니다.
OVER
기간 내에 사용해야 합니다.
ROW_NUMBER
표현식
PARTITION
BYpartitioning_field
필수 콘텐츠 다음을 사용합니다.
PARTITION BY
절을 사용하여 입력 행 그룹을 분할하는 데 사용할 하나 이상의 필드를 지정합니다. 통화를 제외한 모든 필드 유형을 지정할 수 있습니다. 예: 월 필드를 파티셔닝 필드로 지정하면 Workday가 월 값이 동일한 모든 레코드를 단일 파티션으로 그룹화합니다.
ORDER BY
order_field
필수 콘텐츠 다음을 사용합니다.
ORDER BY
절을 사용하여 각 파티션 내에서 지정된 필드의 값을 사용하여 파티션의 입력 행을 정렬하는 방법을 지정합니다. 통화를 제외한 모든 필드 유형을 지정할 수 있습니다.
다음을 사용할 수 있습니다.
DESC
또는
ASC
키워드를 사용하여 각 순서 지정 필드에 대해 내림차순(높은 값에서 낮은 값, NULL이 마지막에 표시) 또는 오름차순(낮은 값부터 높은 값, NULL이 먼저 표시)으로 정렬합니다. 순서 필드의 정렬 순서를 지정하지 않으면 Workday가 자동으로 행을 오름차순으로 정렬합니다.

예를 들어 다음과 같은 행과 필드가 포함된 데이터세트가 있습니다.
직원
판매일
영업
고어
12/31/2018
140
고어
11/30/2018
60
고어
10/31/2018
140
Freeman
12/31/2018
160
Freeman
11/30/2018
60
Freeman
10/31/2018
110
Smith
12/31/2018
140
Smith
11/30/2018
60
Smith
10/31/2018
120
각 직원의 영업에 고유한 ID를 내림차순으로 지정할 수 있으므로 가장 높은 영업 실적에 1의 순위가 부여됩니다.
직원별 매출 수
필드에서 다음 표현식을 사용합니다.
ROW_NUMBER() OVER( PARTITION BY [Employee] ORDER BY [Sales] DESC)
다음과 같은 결과가 표시됩니다.
직원
판매일
영업
직원별 매출
고어
12/31/2018
140
0
고어
10/31/2018
140
2
고어
11/30/2018
60
3
Freeman
12/31/2018
160
0
Freeman
10/31/2018
110
2
Freeman
11/30/2018
60
3
Smith
12/31/2018
140
0
Smith
10/31/2018
120
2
Smith
11/30/2018
60
3
또한 각 날짜의 매출에 고유 ID를 내림차순으로 지정하여 가장 높은 매출에 1의 순위를 지정할 수도 있습니다.
Sales Num by Date
필드에 다음 표현식을 사용합니다.
ROW_NUMBER() OVER( PARTITION BY [Sales Date] ORDER BY [Sales] DESC)
다음과 같은 결과가 표시됩니다.
직원
판매일
영업
날짜별 매출
Freeman
12/31/2018
160
0
고어
12/31/2018
140
2
Smith
12/31/2018
140
3
고어
11/30/2018
60
0
Freeman
11/30/2018
60
2
Smith
11/30/2018
60
3
고어
10/31/2018
140
0
Smith
10/31/2018
120
2
Freeman
10/31/2018
110
3
다음을 사용할 수도 있습니다.
ROW_NUMBER
- ID당 여러 행을 포함하는 데이터세트에서 모든 행의 최신 버전을 확인합니다. 이 시나리오에서 데이터세트에는 해당 행의 정보가 최신 정보가 된 시점을 나타내는 날짜 필드가 필요합니다. 데이터 웨어하우징 개념에 익숙한 경우 이는 유형 2에서 느리게 변화하는 디멘션 테이블입니다. 다음 행과 필드가 포함된 데이터세트가 있습니다.
ID
이름
지역
유효일
G1
Gorman
서부
01/01/2015
H1
Harris
서부
01/01/2015
G1
Gorman
동부
09/01/2016
H1
Harris
동부
01/03/2017
H1
Harris
신분증
01/20/2021
각 ID의 최신 버전에 값 1을 지정하려면
Latest Version
필드에 다음 표현식을 사용합니다.
ROW_NUMBER() OVER( PARTITION BY [ID] ORDER BY [Effective Date] DESC)
다음과 같은 결과가 표시됩니다.
ID
이름
지역
유효일
최신 버전
G1
Gorman
서부
01/01/2015
2
H1
Harris
서부
01/01/2015
3
G1
Gorman
동부
09/01/2016
0
H1
Harris
동부
01/03/2017
2
H1
Harris
신분증
01/20/2021
0
각 ID의 최신 행만 반환하기 위해 필터 단계를 사용하여
최신 버전을
필터링할 수 있습니다.