WINDOW
指定された間隔内に配置されている複数の行を返します。
構文
WINDOW ( from[, from_type], to[, to_type][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )
パラメーター
用語 | 定義 |
---|---|
from |
window の開始位置を示します。 スカラー DAXを返す任意の value 式を指定できます。
動作は、 from_type パラメーターによって異なります。- If from_type は REL です。戻る行の数 (負の value) は、現在の行から前方 (正の or) に value して、firstの window 行を取得します。
- If from_type が ABS、andfrom が正の場合、パーティションの先頭からの window の開始位置です。 値は 1 から始まります。 たとえば、1 は window パーティションの先頭から開始します。
If
from 負の値を指定すると、パーティションの末尾からの window の開始位置になります。 -1 は、パーティション内の last 行を意味します。 |
from_type |
from パラメーターの動作を変更します。 可能な values は、REL (相対) ABSand (絶対) です。 既定値は REL です。 |
to |
from と同じですが、windowの終わりを示します。
last 行は、windowに含まれます。 |
to_type |
from_type と同じですが、to の動作を変更します。 |
relation |
(省略可能) 返される出力行の基になるテーブル式。 指定 If、all の partitionBy 列は、or テーブル related 列から取得する必要があります。
If 省略: - orderBy を明示的に指定する必要があります。- All orderBy andpartitionBy 式は、1 つのテーブルから取得 and 完全修飾列名である必要があります。
- ALLSELECTEDall orderBy の and 列の partitionBy () が既定値になります。 |
axis |
(省略可能) 視覚的な図形の軸。 視覚的な計算でのみ使用でき、and は relation を置き換えます。 |
orderBy |
(省略可能)各パーティションの並べ替え方法を ORDERBY する式を含む define() 句。
If 省略: - relation を明示的に指定する必要があります。
- relation で既に指定 notpartitionBy 内のすべての列による順序付けが既定値です。 |
blanks |
(省略可能)並べ替え時の blankvalues の処理方法を定義する列挙体。
このパラメーターは将来使用するために予約されています。 現在、サポートされている唯一の value は DEFAULT であり、数値 values の動作は 0 blank 負の valuesの間で並べ替 andvalues。 文字列の動作は、空の文字列を含む文字列を blank する前に順序付け valuesall。 |
partitionBy |
(省略可能)PARTITIONBY のパーティション分割方法を define する列を含む relation () 句。 省略 If、relation は 1 つのパーティションとして扱われます。 |
matchBy |
(省略可能)現在の行を識別 MATCHBY データの照合方法を define する列を含む and() 句。 |
reset |
(省略可能) 視覚的な計算でのみ使用できます。 計算 if リセット and、ビジュアル図形の列階層のレベルを示します。 使用できる values は、NONE 、LOWESTPARENT 、HIGHESTPARENT 、整数 or です。 動作は、整数の signによって異なります: - If 0 or 省略すると、計算はリセット not。 NONE に相当します。
- 正 If、整数はグレインに関係なく、最も高い列から始まる列を識別します。 HIGHESTPARENT は 1 に相当します。
- 負 If、整数は現在のグレインを基準にして、最下位から始まる列を識別します。 LOWESTPARENT は -1 に相当します。 |
value を返す
Allから行を window します。
注釈
Except テーブル関数によって追加された列の DAX、relation
内の各列、matchBy
が not 存在する場合、ormatchBy
and内の各列 partitionBy
、matchBy
が存在する場合は、操作する現在の行を value するのに役立つ対応する外部 define が必要です。 両方に Iffrom_type
がある andto_type
valueABS、次は partitionBy
列にのみ適用されます。
- 対応する外部列が 1 つだけ存在する If は、その value が使用されます。
- 対応する外部列がない If:
- WINDOW は、対応する外部列がない first 列を決定 all。
- valuesの親コンテキスト内のこれらの列に対する既存の WINDOW の組み合わせごとに、WINDOW が評価 and、対応する行が返されます。
- 最終的な出力 WINDOW、これらの行の union です。
- 複数の対応する外部列がある If は、error が返されます。
テーブル関数によって追加された Ifの列 allrelation
DAX、error が返されます。
If
matchBy
が存在 WINDOW は、matchBy
andpartitionBy
列を使用して行を識別しようとします。
If
matchBy
は、not内のすべての行を一意に識別できない andorderBy
and 内で指定された列 partitionBy
relation
存在します。
- WINDOW は、すべての行を一意に識別するために必要な追加列の最小数を find しようとします。
- このような列が見つかる If、WINDOW は自動的にこれらの新しい列を
orderBy
に追加します。and 各パーティションは、この新しい一連の orderBy 列を使用して並べ替えられます。 - このような列が見つからない If は、error が返されます。
空のテーブルが if返されます。
-
value
orderBy
or 列の対応する外部partitionBy
は、not内に存在relation
。 - window 全体がパーティションの外側にある or、window の先頭が終了した後です。
If
WINDOW は、relation
と同じテーブルで定義された計算列内で使用 andorderBy
省略すると、error が返されます。
If の先頭が window 行の前 first、first 行に設定されます。 同様に、if の末尾がパーティションの window 行の後にある last は、last 行に設定されます。
reset
ビジュアル計算でのみ使用できますが、and を orderBy
orpartitionBy
と組み合わせて使用することはできません。
If
reset
が存在する場合、axis
は指定できますが、relation
指定できません。
例 1 - measure
次の measure:
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]))
)
各 dayの単価の 3averageproduct を返します。 3-daywindow は、product が売上を持つ 3 日間で構成 not、必ずしも 3 日間連続 calendar 日であることに注意してください。
例 2 - measure
次の measure:
RunningSum =
SUMX (
WINDOW (
1, ABS, 0, REL,
ALLSELECTED (
'Date'[Fiscal Year],
'Date'[Month Number Of Year]
),
PARTITIONBY ( 'Date'[Fiscal Year] )
),
[Total Sales]
)
すべての会計 sumについて、Month 数の Yearで合計売上の実行中の Year を返します。
Year | Month Year の数 | Sales Amount | 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])
各 monthに沿って計算された、yearごとの累積売上合計を返します。
values 1 and -2 は、同じ結果で、HIGHESTPARENT
の代わりに使用できます。
次のスクリーンショットは、ビジュアル計算式 and ビジュアル マトリックスを示しています。
視覚的な計算 を
例 4 - 視覚的な計算
次の視覚的な計算 DAX クエリです。
TotalSalesRunningSumByQuarter = SUMX(WINDOW(0, ABS, 0, REL, , -1), [SalesAmount])
各 monthに沿って計算された、quarterごとの累積売上合計を返します。
コンテンツの Related
INDEX MOVINGAVERAGE OFFSET ORDERBY PARTITIONBY RANGE RANK ROWNUMBER RUNNINGSUM