지정된 간격 내에 배치된 여러 행을 반환합니다.
구문
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
매개 변수
| 용어 | 정의 |
|---|---|
from |
창이 시작되는 위치를 나타냅니다. 스칼라 값을 반환하는 DAX 식일 수 있습니다.
동작은 from_type 매개 변수에 따라 달라집니다. - from_type REL이면 창의 첫 번째 행을 가져오기 위해 현재 행에서 돌아갈 행 수(음수 값) 또는 전달(양수 값)입니다.
- 양ABS수 from 이면 from_type 파티션의 시작 부분에서 창의 시작 위치입니다. 인덱싱은 1부터 시작하며 0은 1로 해석됩니다. 예를 들어 0과 1은 파티션의 시작 부분에서 창이 시작됩니다. 음수이면 from 파티션의 끝에서 창의 시작 위치입니다. -1은 파티션의 마지막 행을 의미합니다. |
from_type |
from 매개 변수의 동작을 수정합니다. 가능한 값은 ABS(절대) 및 REL(상대)입니다. 기본값은 REL입니다. |
to |
from같지만 창의 끝을 나타냅니다. 마지막 행이 창에 포함됩니다. |
to_type |
from_type동일하지만 to동작을 수정합니다. |
relation |
(선택 사항) 출력 행이 반환되는 테이블 식입니다. 시각적 계산에 사용되는 경우 이 매개 변수는 시각적 셰이프의 축을 허용합니다.
지정한 경우 partitionBy 모든 열은 해당 열 또는 관련 테이블에서 나와야 합니다.
생략된 경우: - 명시적으로 지정 orderBy 해야 합니다.- 모든 orderBy 및 partitionBy 식은 정규화된 열 이름이어야 하며 단일 테이블에서 가져옵니다.
- ALLSELECTED 및 orderBy모든 열의 partitionBy()로 기본 설정됩니다. |
orderBy |
(선택 사항) 각 파티션의 정렬 방법을 정의하는 식을 포함하는 ORDERBY() 절입니다.
생략된 경우: - 명시적으로 지정 relation 해야 합니다.
- 기본값은 에 지정되지 않은 모든 열 relation 의 순서 지정입니다 partitionBy. |
blanks |
(선택 사항) relation 정렬하거나 axis때 빈 값을 처리하는 방법을 정의하는 열거형입니다.
지원되는 값은 다음과 같습니다.
개별 식 blanks 의 blanks() 함수에서ORDERBY 매개 변수와 공백을 모두 지정하면 개별 orderBy 식에서 관련 orderBy 식에 우선 순위를 줍니다. 지정되지 않은 blanks OrderBy 식은 부모 함수의 blanks 매개 변수를 적용합니다. |
partitionBy |
(선택 사항) PARTITIONBY 분할 방법을 정의하는 열을 포함하는 절입니다. 생략하면 relation 단일 파티션으로 처리됩니다. |
matchBy |
(선택 사항) 데이터를 일치시키고 현재 행을 식별하는 방법을 정의하는 열이 포함된 (MATCHBY) 절입니다. |
reset |
(선택 사항) 시각적 계산에서만 사용할 수 있습니다. 계산이 다시 설정되는지 여부와 시각적 셰이프의 열 계층 구조 수준을 나타냅니다. 허용되는 값은 현재 시각적 셰이프의 열에 대한 필드 참조, NONE(기본값), LOWESTPARENT, HIGHESTPARENT또는 정수입니다. 동작은 정수 기호 에 따라 달라집니다. - 0이거나 생략하면 계산이 다시 설정되지 않습니다. NONE동일합니다.
- 양의 경우 정수는 곡물과 관계없이 가장 높은 열부터 시작하는 열을 식별합니다. HIGHESTPARENT 1과 같습니다.
- 음수이면 정수는 현재 곡물을 기준으로 가장 낮은 열부터 시작하는 열을 식별합니다. LOWESTPARENT -1과 같습니다. |
반환 값
창의 모든 행입니다.
설명
테이블 함수에 의해 추가된 DAX 열을 제외하고, 각 열 relation 의 열(없는 경우 matchBy ) 또는 각 열 matchBypartitionBy (있는 경우 matchBy )에는 작동할 현재 행을 정의하는 데 도움이 되는 해당 외부 값이 있어야 합니다.
to_type 둘 다 값ABS이 있는 경우 from_type 다음이 열에 partitionBy 만 적용됩니다.
- 정확히 하나의 해당 외부 열이 있는 경우 해당 값이 사용됩니다.
- 해당 외부 열이 없으면 다음을 수행합니다.
- WINDOW 먼저 해당 외부 열이 없는 모든 열을 결정합니다.
- 부모 컨텍스트 WINDOW 에서 이러한 열에 대한 기존 값의 모든 조합에 WINDOW대해 평가되고 해당 행이 반환됩니다.
- WINDOW'의 최종 출력은 이러한 행의 통합입니다.
- 해당하는 외부 열이 두 개 이상 있으면 오류가 반환됩니다.
relation 테이블 함수에서 모든 DAX열을 추가한 경우 오류가 반환됩니다.
있는 WINDOW 경우 matchBy 행을 식별하기 위해 사용 matchBy 및 partitionBy 열을 시도합니다.
없는 경우 열이 지정되어 orderBy 있고 partitionBy 다음의 모든 행relation을 고유하게 식별할 수 없는 경우matchBy:
- WINDOW 는 모든 행을 고유하게 식별하는 데 필요한 최소 개수의 추가 열을 찾습니다.
- 이러한 열을 찾을 WINDOW 수 있으면 이러한 새 열
orderBy이 자동으로 추가되고 각 파티션은 이 새 orderBy 열 집합을 사용하여 정렬됩니다. - 이러한 열을 찾을 수 없으면 오류가 반환됩니다.
다음과 같은 경우 빈 테이블이 반환됩니다.
- 열의
partitionByrelation해당 외부 값이orderBy없습니다. - 전체 창이 파티션 외부에 있거나 창의 시작이 끝 이후입니다.
동일한 테이블에 relationorderBy 정의된 계산 열 내에서 사용하고 WINDOW 생략하면 오류가 반환됩니다.
창의 시작이 첫 번째 행 앞에 있으면 첫 번째 행으로 설정됩니다. 마찬가지로 창의 끝이 파티션의 마지막 행 뒤인 경우 마지막 행으로 설정됩니다.
시각적 계산에서만 사용할 reset 수 있으며 함께 사용하거나 partitionBy함께 orderBy 사용할 수 없습니다. 있는 경우 reset 지정할 수 있지만 지정할 axis 수는 없습니다 relation.
값 reset 이 절대 값(양의 정 HIGHESTPARENT수 또는 필드 참조)이고 계산이 계층 구조의 대상 수준 이상에서 평가되면 각 개별 요소에 대한 계산이 다시 설정됩니다. 즉, 함수는 해당 특정 요소만 포함하는 파티션 내에서 평가됩니다.
이 문서의 예제는 Adventure Works DW 2020 Power BI Desktop 모델 샘플과 함께 사용할 수 있습니다. 모델을 얻으려면 DAX 샘플 모델참조하세요.
예제 1 - 측정값
다음 측정값은 다음과 같습니다.
3-day Average Price =
AVERAGEX (
WINDOW (
-2,
REL,
0,
REL,
SUMMARIZE ( ALLSELECTED ( 'Sales' ), 'Date'[Date], 'Product'[Product] ),
ORDERBY ( 'Date'[Date] ),
KEEP,
PARTITIONBY ( 'Product'[Product] )
),
CALCULATE ( AVERAGE ( Sales[Unit Price] ) )
)
각 제품의 3일 평균 단가를 반환합니다. 3일 기간은 제품이 판매된 3일로 구성되며, 반드시 3일 연속으로 판매되지는 않습니다.
예제 2 - 측정값
다음 측정값은 다음과 같습니다.
RunningSum =
SUMX (
WINDOW (
1,
ABS,
0,
REL,
ALLSELECTED ( 'Date'[Fiscal Year], 'Date'[Month Number Of Year] ),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
매 회계 연도에 대해 다시 시작되는 월별 연도 수별 총 판매액의 실행 합계를 반환합니다.
| 년 | 연도의 월 수 | 매출액 | RunningSum |
|---|---|---|---|
| 2018년 9월 | 1 | $1,327,675 | $1,327,675 |
| 2018년 9월 | 2 | $3,936,463 | $5,264,138 |
| 2018년 9월 | 3 | $700,873 | $5,965,011 |
| 2018년 9월 | 4 | $1,519,275 | $7,484,286 |
| 2018년 9월 | 5 | $2,960,378 | $10,444,664 |
| 2018년 9월 | 6 | $1,487,671 | $11,932,336 |
| 2018년 9월 | 7 | $1,423,357 | $13,355,693 |
| 2018년 9월 | 8 (여덟) | $2,057,902 | $15,413,595 |
| 2018년 9월 | 9 | $2,523,948 | $17,937,543 |
| 2018년 9월 | 10 | $561,681 | $18,499,224 |
| 2018년 9월 | 11 | $4,764,920 | $23,264,145 |
| 2018년 9월 | 12 | $596,747 | $23,860,891 |
| 2019년 9월 | 1 | $1,847,692 | $1,847,692 |
| 2019년 9월 | 2 | $2,829,362 | $4,677,054 |
| 2019년 9월 | 3 | $2,092,434 | $6,769,488 |
| 2019년 9월 | 4 | $2,405,971 | $9,175,459 |
| 2019년 9월 | 5 | $3,459,444 | $12,634,903 |
| 2019년 9월 | 6 | $2,850,649 | $15,485,552 |
| 2019년 9월 | 7 | $2,939,691 | $18,425,243 |
| 2019년 9월 | 8 (여덟) | $3,964,801 | $22,390,045 |
| 2019년 9월 | 9 | $3,287,606 | $25,677,650 |
| 2019년 9월 | 10 | $2,157,287 | $27,834,938 |
| 2019년 9월 | 11 | $3,611,092 | $31,446,030 |
| 2019년 9월 | 12 | $2,624,078 | $34,070,109 |
| 2020년 9월 | 1 | $3,235,187 | $3,235,187 |
| 2020년 9월 | 2 | $4,070,046 | $7,305,233 |
| 2020년 9월 | 3 | $4,429,833 | $11,735,066 |
| 2020년 9월 | 4 | $4,002,614 | $15,737,680 |
| 2020년 9월 | 5 | $5,265,797 | $21,003,477 |
| 2020년 9월 | 6 | $3,465,241 | $24,468,717 |
| 2020년 9월 | 7 | $3,513,064 | $27,981,781 |
| 2020년 9월 | 8 (여덟) | $5,247,165 | $33,228,947 |
| 2020년 9월 | 9 | $5,104,088 | $38,333,035 |
| 2020년 9월 | 10 | $3,542,150 | $41,875,184 |
| 2020년 9월 | 11 | $5,151,897 | $47,027,081 |
| 2020년 9월 | 12 | $4,851,194 | $51,878,275 |
예제 3 - 시각적 계산
다음 시각적 계산 DAX 쿼리:
TotalSalesRunningSumByYear =
SUMX ( WINDOW ( 0, ABS, 0, REL, ROWS, HIGHESTPARENT ), [SalesAmount] )
매년 계산된 월별 누적 총 판매량을 반환합니다. 값 1은 같은 결과를 가진 대신 HIGHESTPARENT사용할 수 있습니다.
아래 스크린샷은 시각적 행렬 및 시각적 계산 식을 보여줍니다.
시각적 계산
예제 4 - 시각적 계산
다음 시각적 계산 DAX 쿼리:
TotalSalesRunningSumByQuarter =
SUMX ( WINDOW ( 0, ABS, 0, REL,, -1 ), [SalesAmount] )
각 분기에 따라 계산된 월별 누적 총 매출을 반환합니다.
-1 대신 동일한 결과를 사용하여 값을 LOWESTPARENT 사용할 수 있습니다.