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] ) 와 함께 사용할 수 있습니다. 결과는 하나의 열이있는 테이블입니다. NumOfProducts =
COUNTROWS (
DISTINCT ( Product[ProductCode] )
)
NumOfProducts = COUNTROWS ( RELATEDTABLE ( Product ) )
! 필터 컨텍스트는 테이블을 필터링합니다. 행 컨텍스트는 행을 반복합니다!
CALCULATE (
Expression,
Filter1,
…
Filtern
)
1. 필터와 합이 같은 테이블에 있습니다. 필터를 사용하여 동일한 결과를 얻을 수 있습니다.
NumOfBigSales =
CALCULATE (
SUM ( Sales[SalesAmount] ),
Sales[SalesAmount] > 100
)
2. 한 열에 만 필터를 청소합니다. 모두 단일 열 테이블과 함께 사용됩니다.
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] ) )
)