IntroductionToDAX
1.0.0
SQLBIの紹介DAXビデオコースに基づいています。
DAXは機能的な言語であり、実行は関数呼び出しで流れます。
の言語:
重要な違い:
多くの新しい機能
データモデルとビジネス計算用に設計されています
!コードのフォーマットは、DAXで重要です。これは、コードのデバッグを簡単にするためです。 DAXコードを自動的にフォーマットするには、DaxFormatterを使用できます。
SUM
AVERAGE
MIN
MAX
SUMX
AVERAGEX
MINX
MAXX
SUMX (
Sales,
Sales[Price] * Sales[Quantity]
)
Quantity =
VAR TotalQuantity = SUM ( Sales[Quantity] )
RETURN
IF (
TotalQuantity > 1000,
TotalQuantity * 0.95,
TotalQuantity * 1.25
)
DATE, DATEVALUE, DAY, EDATE,
EOMONTH, HOUR, MINUTE,
MONTH, NOW, SECOND, TIME,
TIMEVALUE, TODAY, WEEKDAY,
WEEKNUM, YEAR, YEARFRAC
FILTER
ALL
VALUES
DISTINCT
RELATEDTABLE
ALL ( Customers[CustomerName] )で使用することもできます。結果は1つの列のテーブルです。 NumOfProducts =
COUNTROWS (
DISTINCT ( Product[ProductCode] )
)
NumOfProducts = COUNTROWS ( RELATEDTABLE ( Product ) )
!フィルターコンテキストはテーブルをフィルタリングします。行のコンテキストは行を繰り返します!
CALCULATE (
Expression,
Filter1,
…
Filtern
)
1.フィルターと合計は同じテーブルにあります。フィルターを使用して同じ結果を取得できます。
NumOfBigSales =
CALCULATE (
SUM ( Sales[SalesAmount] ),
Sales[SalesAmount] > 100
)
2. 1つの列のみでフィルターをかけます。すべてが単一の列テーブルで使用されます。
CALCULATE (
SUMX (
Orders,
Orders[Amount]
),
ALL ( Orders[Channel] )
)
- 関係はフィルターのコンテキストに影響します
RELATED ( table[column] )
RELATEDTABLE ( table )
SUM() vs CALCULATE(SUM()) CALENDAR (
DATE ( YEAR ( MIN ( Sales[Order Date] ) ), 1, 1 ),
DATE ( YEAR ( MIN ( Sales[Order Date] ) ), 12, 31 )
)
DATESYTDおよびTOTALYTD
SalesAmountYTD =
CALCULATE (
SUM ( Sales[SalesAmount] ),
DATESYTD ( 'Date'[Date] )
)
SalesAmountYTD :=
TOTALYTD (
SUM ( Sales[SalesAmount] ),
'Date'[Date],
"06-30"
)
Sales_SPLY =
CALCULATE (
SUM ( Sales[SalesAmount] ),
SAMEPERIODLASTYEAR ( 'Date'[Date] )
)
SalesAmountRT =
CALCULATE (
SUM ( Sales[SalesAmount] ),
FILTER ( ALL ( 'Date' ), 'Date'[Date] <= MAX ( 'Date'[Date] ) )
)