WINDOW

적용 대상:계산 열계산 테이블치수를 재다시각적 계산

지정된 간격 내에 배치된 여러 행을 반환합니다.

구문

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 해야 합니다.
- 모든 orderBypartitionBy 식은 정규화된 열 이름이어야 하며 단일 테이블에서 가져옵니다.
- ALLSELECTED 및 orderBy모든 열의 partitionBy()로 기본 설정됩니다.
orderBy (선택 사항) 각 파티션의 정렬 방법을 정의하는 식을 포함하는 ORDERBY() 절입니다.
생략된 경우:
- 명시적으로 지정 relation 해야 합니다.
- 기본값은 에 지정되지 않은 모든 열 relation 의 순서 지정입니다 partitionBy.
blanks (선택 사항) relation 정렬하거나 axis때 빈 값을 처리하는 방법을 정의하는 열거형입니다.
지원되는 값은 다음과 같습니다.
  • DEFAULT (기본값) 숫자 값에 대한 동작은 빈 값이 0과 음수 값 사이에 정렬된다는 것입니다. 문자열의 동작은 빈 문자열을 포함하여 모든 문자열 앞에 빈 값이 정렬된다는 것입니다.
  • FIRST: 공백은 오름차순 또는 내림차순 정렬 순서에 관계없이 항상 처음에 정렬됩니다.
  • LAST: 공백은 오름차순 또는 내림차순 정렬 순서에 관계없이 항상 끝에서 정렬됩니다.

개별 식 blanksblanks() 함수에서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 행을 식별하기 위해 사용 matchBypartitionBy 열을 시도합니다. 없는 경우 열이 지정되어 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 사용할 수 있습니다.