DAX 쿼리

Power BI 및 Excel과 같은 보고 클라이언트는 보고서에 필드가 배치되거나 필터가 적용될 때마다 DAX 쿼리를 실행합니다. SSMS(SQL Server Management Studio), Power BI Report BuilderDAX Studio와 같은 오픈 소스 도구를 사용하여 고유한 DAX 쿼리를 만들고 실행할 수 있습니다. DAX 쿼리는 도구 내에서 바로 결과를 테이블로 반환하므로 DAX 수식을 빠르게 만들고 테스트할 수 있습니다.

쿼리에 대해 알아보기 전에 DAX 기본 사항을 확실하게 이해하는 것이 중요합니다. 아직 없는 경우 DAX 개요검사.

키워드

DAX 쿼리에는 하나의 필수 키워드, EVALUATE로 구성되는 간단한 구문과 ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE 및 COLUMN과 같은 몇 가지 선택적 키워드로 구성된 구문이 있습니다. 각 키워드는 쿼리 기간 동안 사용되는 문을 정의합니다.

EVALUATE(필수)

가장 기본적인 수준에서 DAX 쿼리는 테이블 식을 포함하는 EVALUATE 문입니다. 하나 이상의 EVALUATE 문이 필요하지만 하나의 쿼리에 여러 EVALUATE 문이 포함될 수 있습니다.

EVALUATE 구문

EVALUATE <table>  

EVALUATE 매개 변수

용어 정의
table 테이블 식입니다.

EVALUATE 예제

EVALUATE
    'Internet Sales'

Internet Sales 테이블의 모든 행과 열을 테이블로 반환합니다.

DAX Evaluate 문

ORDER BY(선택 사항)

선택적 ORDER BY 키워드(keyword) 쿼리 결과를 정렬하는 데 사용되는 하나 이상의 식을 정의합니다. 결과의 각 행에 대해 평가할 수 있는 식은 유효합니다.

ORDER BY 구문

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]  

ORDER BY 매개 변수

용어 정의
단일 스칼라 값을 반환하는 DAX 식입니다.
ASC (기본값) 오름차순 정렬 순서입니다.
DESC 내림차순 정렬 순서입니다.

ORDER BY 예

EVALUATE
    'Internet Sales'
    
ORDER BY
    'Internet Sales'[Order Date]

주문 날짜의 오름차순으로 정렬된 인터넷 판매 테이블의 모든 행 및 열을 테이블로 반환합니다.

DAX 계산 순서 기준 문

START AT(선택 사항)

선택적 START AT 키워드(keyword) ORDER BY 절 내에 사용됩니다. 쿼리 결과가 시작되는 값을 정의합니다.

START AT 구문

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]  
[START AT {<value>|<parameter>} [, …]]]

START AT 매개 변수

용어 정의
value 상수 값입니다. 식일 수 없습니다.
parameter 문자 접두사로 된 XMLA 문의 매개 변수 이름입니다 @ .

START AT 설명

START AT 인수에는 ORDER BY 절의 열과 일대일 대응이 있습니다. START AT 절에는 ORDER BY 절에 있는 만큼 많은 인수가 있을 수 있지만 더 이상 있을 수는 없습니다. START AT의 첫 번째 인수는 ORDER BY 열의 열 1에서 시작 값을 정의합니다. START AT의 두 번째 인수는 열 1의 첫 번째 값을 충족하는 행 내 ORDER BY 열의 열 2에서 시작 값을 정의합니다.

START AT 예제

EVALUATE
    'Internet Sales'
    
ORDER BY
    'Internet Sales'[Sales Order Number]
START AT "SO7000"

SO7000에서 시작하여 판매 주문 번호의 오름차순으로 정렬된 인터넷 판매 테이블의 모든 행 및 열을 반환합니다.

판매 주문 번호 문별 DAX 주문 평가

DEFINE(선택 사항)

선택적 DEFINE 키워드는 쿼리 기간 동안만 존재하는 하나 이상의 계산된 엔터티 정의를 도입합니다. 정의는 EVALUATE 문 앞에 있으며 쿼리의 모든 EVALUATE 문에 대해 유효합니다. 정의는 변수, 측정값, 테이블1 및 열1일 수 있습니다. 정의는 현재 정의 앞이나 후에 나타나는 다른 정의를 참조할 수 있습니다. DEFINE 키워드가 쿼리에 포함된 경우 하나 이상의 정의가 필요합니다.

DEFINE 구문

[DEFINE 
    (
     (MEASURE <table name>[<measure name>] = <scalar expression>) | 
     (VAR <var name> = <table or scalar expression>) |
     (TABLE <table name> = <table expression>) | 
     (COLUMN <table name>[<column name>] = <scalar expression>) | 
    ) + 
]

(EVALUATE <table expression>) +

DEFINE 매개 변수

용어 정의
Entity MEASURE, VAR, TABLE1 또는 COLUMN1.
name 측정값, var, 테이블 또는 열 정의의 이름입니다. 식일 수 없습니다. 이름은 중복되어도 문제가 없습니다. 이름은 쿼리 기간 동안만 존재합니다.
테이블 또는 스칼라 값을 반환하는 모든 DAX 식입니다. 식은 정의된 엔터티를 사용할 수 있습니다. 스칼라 식을 테이블 식으로 변환해야 하는 경우 중괄호 {}를 사용하여 테이블 생성자 내부에 식을 넣거나 ROW() 함수를 사용하여 단일 행 테이블을 반환합니다.

[1]주의: 쿼리 범위가 지정된 TABLE 및 COLUMN 정의는 내부적으로만 사용됩니다. 쿼리에 대한 TABLE 및 COLUMN 식은 구문 오류 없이 정의할 수 있지만 런타임 오류가 발생할 수 있으므로 권장되지 않습니다.

DEFINE 설명

  • DAX 쿼리에 EVALUATE 문은 여러 개 있을 수 있지만 DEFINE 문은 하나만 있을 수 있습니다. DEFINE 문의 정의는 쿼리의 모든 EVALUATE 문에 적용할 수 있습니다.

  • DEFINE 문에는 하나 이상의 정의가 필요합니다.

  • 쿼리에 대한 측정값 정의는 동일한 이름의 모델 측정값을 재정의하지만 쿼리 내에서만 사용됩니다. 모델 측정값에는 영향을 미치지 않습니다.

  • VAR 이름에는 고유한 제한이 있습니다. 자세한 내용은 VAR - 매개 변수를 참조하세요.

DEFINE 예제

DEFINE
    MEASURE 'Internet Sales'[Internet Total Sales] =
        SUM ( 'Internet Sales'[Sales Amount] )

EVALUATE
SUMMARIZECOLUMNS (
    'Date'[Calendar Year],
    TREATAS (
        {
            2013,
            2014
        },
        'Date'[Calendar Year]
    ),
    "Total Sales", [Internet Total Sales],
    "Combined Years Total Sales",
        CALCULATE (
            [Internet Total Sales],
            ALLSELECTED ( 'Date'[Calendar Year] )
        )
)
ORDER BY [Calendar Year]

2013년과 2014년의 계산된 총 판매액과 2013년과 2014년 계산 총 매출을 테이블로 반환합니다. DEFINE 문의 측정값인 Internet Total Sales는 Total Sales 및 Combined Years Total Sales 식 모두에 사용됩니다.

측정값을 사용하여 DAX 평가

DAX 쿼리의 매개 변수

잘 정의된 DAX 쿼리 문을 매개 변수화한 다음 매개 변수 값의 변경 내용으로 반복해서 사용할 수 있습니다.

XMLA(Execute 메서드) 메서드에는 매개 변수를 정의하고 값을 할당할 수 있는 XMLA(Parameters 요소) 컬렉션 요소가 있습니다. 컬렉션 내에서 각 XMLA(Parameter 요소) 요소는 매개 변수의 이름과 해당 매개 변수의 값을 정의합니다.

매개 변수 이름 앞에 문자를 추가하여 XMLA 매개 변수를 참조합니다 @ . 값이 허용되는 구문의 모든 위치에서 값을 매개 변수 호출로 바꿀 수 있습니다. 모든 XMLA 매개 변수는 텍스트로 입력됩니다.

Important

매개 변수 섹션에 정의되고 STATEMENT> 요소에 사용되지 않는 매개 변수는 <XMLA에서 오류 응답을 생성합니다. Parameters 요소에 사용되지 않고 정의되지 않은 매개 변수><XMLA에서 오류 응답을 생성합니다.

DAX 문
SUMMARIZECOLUMNS
TREATAS
필터