다음을 통해 공유


WINDOW

적용 대상:계산 열계산 테이블측정값시각적 계산

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

구문

WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

매개 변수

용어 정의
from 창이 시작되는 위치를 나타냅니다. 스칼라 값을 반환하는 DAX 식일 수 있습니다.
동작은 from_type 매개 변수에 따라 달라집니다.
- from_type REL이면 창의 첫 번째 행을 가져오기 위해 현재 행에서 돌아갈 행 수(음수 값) 또는 전달(양수 값)입니다.
- from_typeABS있고 from 양수이면 파티션 시작부터 창 시작 위치입니다. 인덱싱은 1부터 시작하며 0은 1로 해석됩니다. 예를 들어 0과 1은 파티션의 시작 부분에서 창이 시작됩니다. from 음수이면 파티션 끝에서 창의 시작 위치입니다. -1은 파티션의 마지막 행을 의미합니다.
from_type from 매개 변수의 동작을 수정합니다. 가능한 값은 ABS(절대) 및 REL(상대)입니다. 기본값은 REL입니다.
to from같지만 창의 끝을 나타냅니다. 마지막 행이 창에 포함됩니다.
to_type from_type동일하지만 to동작을 수정합니다.
relation (선택 사항) 출력 행이 반환되는 테이블 식입니다.
지정한 경우 partitionBy 모든 열은 해당 열 또는 관련 테이블에서 나와야 합니다.
생략된 경우:
- orderBy 명시적으로 지정해야 합니다.
- 모든 orderBypartitionBy 식은 정규화된 열 이름이어야 하며 단일 테이블에서 가져옵니다.
- orderBypartitionBy모든 열의 ALLSELECTED()로 기본 설정됩니다.
axis (선택 사항) 시각적 셰이프의 축입니다. 시각적 계산에서만 사용할 수 있으며 relation대체합니다.
orderBy (선택 사항) 각 파티션의 정렬 방법을 정의하는 식을 포함하는 ORDERBY() 절입니다.
생략된 경우:
- relation 명시적으로 지정해야 합니다.
- partitionBy아직 지정되지 않은 relation 모든 열의 순서 지정이 기본값입니다.
blanks (선택 사항) relation 정렬하거나 axis때 빈 값을 처리하는 방법을 정의하는 열거형입니다.
지원되는 값은 다음과 같습니다.
  • DEFAULT(기본값)입니다. 여기서 숫자 값의 동작은 빈 값이며 0과 음수 값 사이에 정렬됩니다. 문자열에 대한 동작은 빈 문자열을 포함하여 모든 문자열 앞에 빈 값이 정렬됩니다.
  • FIRST오름차순 또는 내림차순 정렬 순서에 관계없이 공백은 항상 시작 부분에 정렬됩니다.
  • LAST공백은 오름차순 또는 내림차순 정렬 순서에 관계없이 항상 끝에 정렬됩니다.

개별 식에 대한 ORDERBY() 함수의 blanks 매개 변수와 공백이 모두 지정된 경우 개별 orderBy 식의 blanks 관련 orderBy 식에 우선 순위를 두고 blanks 지정하지 않은 orderBy 식은 부모 함수의 blanks 매개 변수를 적용합니다.
partitionBy (선택 사항) relation 분할 방법을 정의하는 열을 포함하는 PARTITIONBY() 절입니다. 생략하면 relation 단일 파티션으로 처리됩니다.
matchBy (선택 사항) 데이터를 일치시키고 현재 행을 식별하는 방법을 정의하는 열을 포함하는 MATCHBY() 절입니다.
reset (선택 사항) 시각적 계산에서만 사용할 수 있습니다. 계산이 다시 설정되는지, 시각적 셰이프의 열 계층 구조 수준을 나타내는지 나타냅니다. 허용되는 값은 현재 시각적 셰이프의 열에 대한 필드 참조, NONE(기본값), LOWESTPARENT, HIGHESTPARENT또는 정수입니다. 동작은 정수 기호에 따라 달라집니다.
- 0이거나 생략하면 계산이 다시 설정되지 않습니다. NONE동일합니다.
- 양의 경우 정수는 곡물과 관계없이 가장 높은 열부터 시작하는 열을 식별합니다. HIGHESTPARENT 1과 같습니다.
- 음수이면 정수는 현재 곡물을 기준으로 가장 낮은 열부터 시작하는 열을 식별합니다. LOWESTPARENT -1과 같습니다.

반환 값

창의 모든 행입니다.

설명

DAX 테이블 함수에 의해 추가된 열을 제외하고 matchBy 없는 경우 relation각 열 또는 matchBypartitionBy각 열은 matchBy 있는 경우 작동할 현재 행을 정의하는 데 도움이 되는 해당 외부 값이 있어야 합니다. from_typeto_type 모두 값이 ABS경우 partitionBy 열에만 적용됩니다.

  • 정확히 하나의 해당 외부 열이 있는 경우 해당 값이 사용됩니다.
  • 해당 외부 열이 없는 경우:
    • WINDOW 먼저 해당 외부 열이 없는 모든 열을 결정합니다.
    • WINDOW부모 컨텍스트에서 이러한 열에 대한 기존 값의 모든 조합에 대해 WINDOW 평가되고 해당 행이 반환됩니다.
    • WINDOW 최종 출력은 이러한 행의 통합입니다.
  • 해당하는 외부 열이 두 개 이상 있으면 오류가 반환됩니다.

DAX 테이블 함수에서 모든 relation열을 추가한 경우 오류가 반환됩니다.

matchBy 있는 경우 WINDOWmatchBypartitionBy 열을 사용하여 행을 식별하려고 합니다. matchBy 없고 orderBypartitionBy 내에 지정된 열이 relation모든 행을 고유하게 식별할 수 없는 경우 다음을 수행합니다.

  • WINDOW 모든 행을 고유하게 식별하는 데 필요한 최소 개수의 추가 열을 찾으려고 합니다.
  • 이러한 열을 찾을 수 있는 경우 WINDOW 이러한 새 열을 자동으로 orderBy추가하며 각 파티션은 이 새 orderBy 열 집합을 사용하여 정렬됩니다.
  • 이러한 열을 찾을 수 없으면 오류가 반환됩니다.

다음과 같은 경우 빈 테이블이 반환됩니다.

  • orderBy 또는 partitionBy 열의 해당 외부 값이 relation내에 없습니다.
  • 전체 창이 파티션 외부에 있거나 창의 시작이 끝 이후입니다.

relation동일한 테이블에 정의된 계산 열 내에서 WINDOW 사용되고 orderBy 생략하면 오류가 반환됩니다.

창의 시작이 첫 번째 행 앞에 있으면 첫 번째 행으로 설정됩니다. 마찬가지로 창의 끝이 파티션의 마지막 행 뒤인 경우 마지막 행으로 설정됩니다.

reset 시각적 계산에만 사용할 수 있으며 orderBy 또는 partitionBy함께 사용할 수 없습니다. reset 있는 경우 axis 지정할 수 있지만 relation 수 없습니다.

예제 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
FY2018 1 $1,327,675 $1,327,675
FY2018 2 $3,936,463 $5,264,138
FY2018 3 $700,873 $5,965,011
FY2018 4 $1,519,275 $7,484,286
FY2018 5 $2,960,378 $10,444,664
FY2018 6 $1,487,671 $11,932,336
FY2018 7 $1,423,357 $13,355,693
FY2018 8 $2,057,902 $15,413,595
FY2018 9 $2,523,948 $17,937,543
FY2018 10 $561,681 $18,499,224
FY2018 11 $4,764,920 $23,264,145
FY2018 12 $596,747 $23,860,891
FY2019 1 $1,847,692 $1,847,692
FY2019 2 $2,829,362 $4,677,054
FY2019 3 $2,092,434 $6,769,488
FY2019 4 $2,405,971 $9,175,459
FY2019 5 $3,459,444 $12,634,903
FY2019 6 $2,850,649 $15,485,552
FY2019 7 $2,939,691 $18,425,243
FY2019 8 $3,964,801 $22,390,045
FY2019 9 $3,287,606 $25,677,650
FY2019 10 $2,157,287 $27,834,938
FY2019 11 $3,611,092 $31,446,030
FY2019 12 $2,624,078 $34,070,109
FY2020 1 $3,235,187 $3,235,187
FY2020 2 $4,070,046 $7,305,233
FY2020 3 $4,429,833 $11,735,066
FY2020 4 $4,002,614 $15,737,680
FY2020 5 $5,265,797 $21,003,477
FY2020 6 $3,465,241 $24,468,717
FY2020 7 $3,513,064 $27,981,781
FY2020 8 $5,247,165 $33,228,947
FY2020 9 $5,104,088 $38,333,035
FY2020 10 $3,542,150 $41,875,184
FY2020 11 $5,151,897 $47,027,081
FY2020 12 $4,851,194 $51,878,275

예제 3 - 시각적 계산

다음 시각적 계산 DAX 쿼리:

TotalSalesRunningSumByYear = SUMX(WINDOW(0, ABS, 0, REL, ROWS, HIGHESTPARENT), [SalesAmount])

매년 계산된 월별 누적 총 판매량을 반환합니다. 값 1과 -2 동일한 결과와 함께 HIGHESTPARENT대신 사용할 수 있습니다.

아래 스크린샷은 시각적 행렬 및 시각적 계산 식을 보여줍니다.

시각적 계산

예제 4 - 시각적 계산

다음 시각적 계산 DAX 쿼리:

TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])

각 분기에 따라 계산된 월별 누적 총 매출을 반환합니다.

INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM