다음을 통해 공유


WINDOW

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

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

구문

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

매개 변수

용어 정의
보낸 사람 창이 시작되는 위치를 나타냅니다. 스칼라 값을 반환하는 DAX 식일 수 있습니다.
동작은 from_type> 매개 변수
에 <따라 달라집니다. - from_type> REL인 경우 <창의 첫 번째 행을 가져오기 위해 현재 행에서 돌아갈 행 수(음수 값) 또는 전달(양수 값)입니다.
- from_type> ABS이고 <원본>이 양수이면 <파티션 시작부터 창 시작 위치입니다. 인덱싱은 1부터 시작하는 것입니다. 예를 들어 1은 파티션의 시작 부분에서 창이 시작됩니다. from>이 음수이면 <파티션의 끝에서 창의 시작 위치입니다. -1은 파티션의 마지막 행을 의미합니다.
from_type from> 매개 변수의 동작을 <수정합니다. 가능한 값은 ABS(절대) 및 REL(상대)입니다. 기본값은 REL입니다.
원본>과 동일<하지만 창의 끝을 나타냅니다. 마지막 행이 창에 포함됩니다.
to_type from_type 동일<하지만 동작<을 수정합니다>.>
관계 (선택 사항) 출력 행이 반환되는 테이블 식입니다.
지정한 경우 partitionBy>의 모든 열은 <해당 열 또는 관련 테이블에서 나와야 합니다.
생략된 경우:
- <orderBy> 를 명시적으로 지정해야 합니다.
- 모든 <orderBy> 및 <partitionBy> 식은 정규화된 열 이름이어야 하며 단일 테이블에서 가져옵니다.
- orderBy 및 partitionBy>의 모든 열에 대한 <ALLSELECTED()로 기본값이 지정<됩니다.>
(선택 사항) 시각적 셰이프의 축입니다. 시각적 계산에서만 사용할 수 있으며 관계를> 대체합니다<.
orderBy (선택 사항) 각 파티션의 정렬 방법을 정의하는 식을 포함하는 ORDERBY() 절입니다.
생략된 경우:
- <관계를> 명시적으로 지정해야 합니다.
- partitionBy>에 아직 지정되지 않은 관계의> 모든 열<에 <따라 정렬하는 기본값입니다.
공백 (선택 사항) 정렬할 때 빈 값을 처리하는 방법을 정의하는 열거형입니다.
이 매개 변수는 나중에 사용하도록 예약되어 있습니다.
현재 지원되는 유일한 값은 DEFAULT입니다. 여기서 숫자 값에 대한 동작은 빈 값이 0과 음수 값 사이에 정렬됩니다. 문자열에 대한 동작은 빈 문자열을 포함하여 모든 문자열 앞에 빈 값이 정렬됩니다.
partitionBy (선택 사항) 관계가> 분할되는 방법을 <정의하는 열을 포함하는 PARTITIONBY() 절입니다. 생략 <하면 관계가> 단일 파티션으로 처리됩니다.
matchBy (선택 사항) 데이터를 일치시키고 현재 행을 식별하는 방법을 정의하는 열을 포함하는 MATCHBY() 절입니다.
reset (선택 사항) 시각적 계산에서만 사용할 수 있습니다. 계산이 다시 설정되는지, 시각적 셰이프의 열 계층 구조 수준을 나타내는지 나타냅니다. 허용되는 값은 NONE, LOWESTPARENT, HIGHESTPARENT 또는 정수입니다. 동작은 정수 기호
에 따라 달라집니다. - 0이거나 생략하면 계산이 다시 설정되지 않습니다. NONE에 해당합니다.
- 양수이면 정수는 곡물과 관계없이 가장 높은 열부터 시작하는 열을 식별합니다. HIGHESTPARENT는 1과 같습니다.
- 음수이면 정수는 현재 곡물을 기준으로 가장 낮은 열부터 시작하는 열을 식별합니다. LOWESTPARENT는 -1과 같습니다.

반환 값

창의 모든 행입니다.

설명

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

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

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

matchBy>가 있는 경우 <WINDOW는 matchBy 및 <partitionBy>> 열을 사용하여 <행을 식별하려고 합니다.
matchBy>가 없고 orderBy 및 <partitionBy>> 내에 <지정된 열이 관계의> 모든 행을 <고유하게 식별할 수 없는 경우 <다음을 수행합니다.

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

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

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

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

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

<초기화>는 시각적 계산에서만 사용할 수 있으며 orderBy 또는 <partitionBy>>와 함께 <사용할 수 없습니다. <다시 설정>이 있으면 축>을 <지정할 수 있지만 <관계형>은 지정할 수 없습니다.

예제 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]
)

매 회계 연도에 대해 다시 시작되는 월별 연도 수별 총 판매액의 실행 합계를 반환합니다.

Year 연도의 월 수 매출액 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])

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

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

DAX 시각적 계산

예제 4 - 시각적 계산

다음 시각적 계산 DAX 쿼리:

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

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

INDEX
MOVINGAVERAGE
OFFSET
ORDERBY
PARTITIONBY
레인지
RANK
ROWNUMBERRUNNINGSUM