DAX 쿼리 보기(DAX Query View) (2)
DAX 쿼리 보기(DAX Query View) (2)
이전 글에서 DAX 쿼리 보기에 대한 일반적인 내용으로 기본 작업과 빠른 쿼리에 대한 내용을 확인해보았습니다. 이번 글에서는 EVEALUTE 구문을 통해 DAX 쿼리를 조금 더 자세히 확인해보겠습니다.
이전 글에서 살펴본 것처럼 DAX 쿼리 보기는 측정값이나 계산 열을 테스트하고, 결과를 확인하기 위한 용도입니다. 단순 데이터를 조회하기 위해서는 테이블이나 행렬로 시각화를 하는 것이 더 효과적입니다.
EVEALUTE 구문은 T-SQL 구문에서 SELECT 구문 영역으로 이해하면 됩니다. T-SQL이 익숙하지 않다면 데이터를 조회하는 영역에 해당한다고 이해해주세요. EVEALUTE 구문은 반드시 지정해야 하는 필수 사항입니다. DEFINE 구문은 데이터를 조회할 때 사용할 측정값, 열, 변수, 테이블을 미리 선언하는 영역으로 선택 사항입니다.
EVEALUTE 구문은 테이블 식을 포함하며 그 결과를 반환하는 함수입니다.
EVALUATE <table>
EVEALUTE 구문에서 측정값이나 열을 테스트하고 결과를 확인하는데 가장 많이 사용하는 함수는 SELECTCOLUMNS, SUMMARIZECOLUMNS입니다. EVEALUTE 구문과 관련된 구문으로는 ORDER BY, STAT AT 이 있습니다. 결과를 테스트하기 위한 TOPN, DISTINCT 등 테이블 식을 사용할 수도 있습니다.
간단히 EVEALUTE 구문 테스트를 아래와 같이 해볼 수 있습니다. 테이블 명을 추가하고 실행합니다.
EVALUATE
'제품'
해당 테이블을 조회하여 결과를 제공합니다.
ORDER BY 컬럼명을 추가하게 되면 결과값이 정렬되는 것을 확인할 수 있습니다. 맨 끝에 ASC, DESC를 추가하여 정렬방식을 정할 수 있습니다.
EVALUATE
'제품'
ORDER BY [제품명]
제품 테이블의 모든 열이 아닌 일부 열만 조회하려면 SELECTCOLUMNS을 아래와 같은 방식으로 사용하면 됩니다.
EVALUATE
SELECTCOLUMNS(
'제품',
"ID", '제품'[ProductKey],
"제품명", '제품'[제품명],
'제품'[대분류],
'제품'[Color]
)
ORDER BY [제품명]
위 구문에서 다른 테이블의 측정값이나 열을 추가하여 조회할 수는 없습니다. 전체 제품이 나오므로 제품ID 정렬된 상위 10개 제품만 보이게 하고 싶을때는 TOPN 함수를 사용하면 됩니다.
EVALUATE
SELECTCOLUMNS(
TOPN(
10,
'제품',
'제품'[ProductKey],
ASC
),
"ID",
'제품'[ProductKey],
"제품명",
'제품'[제품명],
'제품'[대분류],
'제품'[Color]
)
ORDER BY [제품명]
TOPN 함수 대신 FILTER 함수를 이용하여 행을 필터하여 테이블 식을 반환할 수도 있습니다.
EVALUATE
SELECTCOLUMNS(
FILTER('제품', [대분류] ="BIKES"),
"ID",
'제품'[ProductKey],
"제품명",
'제품'[제품명],
'제품'[대분류],
'제품'[Color]
)
ORDER BY [제품명]
막대형 차트에 국가, 제품 대분류, 매출총액을 시각화하는 경우가 상당히 많습니다. 그런 경우를 테스트하기 위해서는 SUMMARIZECOLUMNS을 이용하여 처리할 수 있습니다.
EVALUATE
SUMMARIZECOLUMNS(
'지역'[국가]
,'제품'[대분류]
,"매출종액", SUM('매출'[SalesAmount])
)
ORDER BY '지역'[국가]
집계 함수를 사용하지 않고 측정값을 사용하여도 됩니다.
EVALUATE
SUMMARIZECOLUMNS(
'지역'[국가],
'제품'[대분류],
"매출종액", [Total Sales]
)
ORDER BY '지역'[국가]
테이블 식을 포함하며 그 결과를 반환하는 EVEALUTE 구문을 간략히 확인해보았는데, 다음 글에서는 측정값과 DEFINE 구문을 통해 DAX 쿼리 보기를 조금 더 자세히 확인해보겠습니다.