다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이 자습서에서는 각각에 대한 특정 쿼리 예제와 함께 DAX Studio의 다양한 키워드 및 기능에 대해 알아봅니다.

특히 TOPNSKIP 및 ADDMISSINGITEMS 함수와 함께 ORDER BY 및 START AT 키워드에 대해 알아봅니다.

목차

DAX 쿼리 예: ORDER BY 키워드

ORDER BY 키워드를 사용하면 데이터 세트를 정렬할 수 있습니다.

기본 예

예를 들어 ORDER BY 키워드를 사용하여 열을 사전순으로 정렬할 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

첫 번째 행 데이터가 "A"로 시작하는 것을 볼 수 있습니다. DAX Studio의 기본 정렬 순서는 오름차순 입니다 .

데이터를 내림차순으로 표시하려면 DESC 를 작성하십시오 . 따라서 이 예에서는 A 대신 브랜드 열이 "W"로 시작합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

마찬가지로 오름차순으로 되돌리려면 ASC 를 작성하십시오 . 한 번에 여러 열을 정렬할 수도 있습니다. 각 열을 쉼표로 구분하여 원하는 열을 작성하여 이 작업을 수행할 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

실제 사례

이제 ORDER BY 키워드를 사용하는 간단한 실제 애플리케이션을 살펴보겠습니다. 이것은 TABLE 키워드 자습서 에서 사용된 것과 동일한 예입니다 .

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이 테이블이 3개의 열을 반환하는 것을 볼 수 있습니다. 첫 번째는 Boring과 Trendy로 구성된 Product Type입니다. 두 번째 열에는 제품 유형별 총 매출이 표시됩니다. 세 번째는 판매 비율을 반환합니다.

이 예에서는 제품 유형을 정렬하는 새 열을 만들어야 합니다. 문 뒤에 COLUMN 키워드를 쓰고 생성하려는 열의 이름을 씁니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이 열의 공식은 IF 구문과 동일하지만 "Trendy" 및 "Boring" 대신 이 열에 Trendy는 "1", Boring은 "2"가 표시됩니다.

테이블에서 이 열을 보려면 EVALUATE 구문 아래에 작성하십시오.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

그러면 숫자 1과 2로 구성된 테이블에 새 열인 Product Type Sort가 추가된 것을 볼 수 있습니다.

이 열을 정렬하려면 구문 다음에 ORDER BY 키워드를 작성하십시오 . 그런 다음 열 이름 뒤에 원하는 열 정렬 순서에 따라 ASC 또는 DESC를 씁니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

DAX 쿼리 예: START AT

다음으로 배울 내용은 START AT 키워드입니다.

START AT는 더 이상 사용되지 않는 키워드입니다. 대부분의 DAX 쿼리에는 사용하지 않는 것이 좋습니다. 그러나 여전히 이를 사용하는 일부 DAX 코드를 찾을 수 있습니다. 따라서 그것이 무엇이며 어떤 경우에 사용할 수 있는지 아는 것이 여전히 중요합니다.

기본 예

먼저 EVALUATE 키워드를 작성합니다. 이 예에서는 Products 테이블을 사용합니다. START AT를 쓰기 전에 먼저 ORDER BY를 사용한 다음 포함하려는 열을 지정하십시오.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제


그런 다음 START AT를 작성할 수 있습니다. 이 구문은 ORDER BY에서 열을 작성한 방법과 유사한 순서를 따릅니다. 이 예에서 제품 키 열은 "2"에서 시작하고 브랜드 열은 "Contoso"에서 시작합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

F5 키를 누르면 지정한 열이 쿼리 방향을 따르는 결과 테이블을 볼 수 있습니다.

이제 다른 열이 추가되면 어떻게 되는지 살펴보겠습니다. 이 경우 색상 열은 "은색"에서 시작해야 합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이 쿼리를 실행하면 색상 열 ​​아래의 첫 번째 항목이 "흰색"임을 알 수 있습니다. START AT 사용 시 결과가 항상 모든 조건을 따른다는 보장은 없습니다.

이 예제의 경우 동일한 행에 2, Contoso 및 Silver가 모두 포함된 Products 테이블의 인스턴스가 없습니다. 대신 DAX 엔진은 사용자가 생성한 쿼리와 가장 일치하는 항목을 생성하려고 합니다.

복잡한 예

다른 예를 살펴보겠습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

EVALUATE 뒤에 ORDER BY 키워드와 세 개의 지정된 열을 씁니다. 그런 다음 START AT를 작성하십시오. 이 경우 Color 열은 "Red"에서 시작하고 Gender 열은 "M"에서 시작하며 Store Key 열은 "2"에서 시작해야 합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

쿼리를 실행한 후 DAX 엔진이 지정된 매개 변수를 일치시키기 위해 최선을 다했음을 알 수 있습니다.

결과에서 두 개의 열이 올바른 반면 Store Key 열은 2가 아닌 199에서 시작한다는 것을 알 수 있습니다. 이는 이 예제의 데이터 모델에 Store Key 2가 존재하지 않기 때문입니다.

느린 DAX 엔진

홈 탭에서 서버 타이밍 버튼을 클릭합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

하단에 새 탭이 나타납니다. 실행 드롭다운 화살표에 있는 캐시 지우기 후 실행 버튼을 클릭합니다 .

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

쿼리를 실행하는 데 DAX Studio 142ms가 걸린다는 것을 알 수 있습니다. START AT 구문을 제거하고 코드를 다시 실행하면 실행하는 데 11ms밖에 걸리지 않는다는 것을 알 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

CallBackDataID 라는 DAX 엔진의 동작을 호출하기 때문에 START AT 구문이 있는 경우 쿼리 실행 시간이 더 오래 걸립니다 .

START AT는 코드를 매우 느리게 만��니다. 꼭 필요한 것이 아니라면 피하는 것이 좋다.

작성 중인 DAX 코드의 전체 성능에 상당한 영향을 미칩니다. 이것이 다른 유사한 기능을 사용하는 것이 가장 좋은 이유입니다.

DAX 쿼리 예: TOPNSKIP 함수

이 튜토리얼에서 다음으로 배울 내용은 TOPNSKIP 함수입니다. 과 유사 하지만 추가 매개변수와 함께 한 가지 미묘한 차이점이 있습니다. 이를 더 잘 이해하기 위해 예를 살펴보겠습니다.

TOPN 대 TOPNSKIP

먼저 EVALUATE 키워드를 작성합니다. 그런 다음 아래에 TOPN 인수를 작성하여 Products Table의 Top 100 행을 봅니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이 테이블은 또한 제품 키 열과 관련하여 오름차순으로 정렬되었습니다.

이제 TOPN을 TOPNSKIP으로 교체합니다. 두 번째 인수에서 건너뛸 행 수를 제공합니다. 이 예에서는 10이 지정됩니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이를 실행하면 이제 제품 키 열이 11에서 시작하여 110에서 끝나는 것을 볼 수 있습니다. 계산된 테이블 또는 테이블 형식 데이터 모델에서는 TOPNSKIP 함수를 사용할 수 없습니다.

다른 예시

다음 예에서는 고객 테이블의 상위 5000개 행을 살펴보겠습니다. 이 테이블은 Gender 열을 기준으로 오름차순으로 정렬됩니다.

TOPN 함수를 사용하면 테이블이 9,518개의 행을 반환하는 것을 볼 수 있습니다. 이는 상위 5000개 행만 표시하도록 지정한 경우에도 일부 데이터가 필터링되지 않은 상태로 남아 있음을 의미합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

그러나 TOPNSKIP 함수를 사용하면 테이블이 Gender 열의 처음 5,000개 행만 반환하는 것을 볼 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

따라서 고객의 성별 열에 특정 성별에 대한 여러 규칙이 있는 경우에도 TOPNSKIP 함수는 처음 5,000개 행만 반환합니다. 이 결과는 TOPN 기능을 사용할 때 보장되지 않습니다.

DAX 쿼리 예: ADDMISSINGITEMS 함수

마지막으로 DAX Studio의 ADDMISSINGITEMS 함수를 살펴보겠습니다 .

SUMMARIZECOLUMNS를 사용하면 기본적으로 결과에서 빈 행을 제거하려고 시도합니다. 예를 들어 제품 색상, 제품 브랜드 및 고객 성별을 요약하는 쿼리를 작성할 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

F5 키를 누르면 테이블이 세 개의 열을 반환하는 것을 볼 수 있습니다. Gender 열은 Male, Female, Blank의 3가지 유형의 성별로 구성됩니다. 공백은 회사를 나타냅니다. 또한 333개의 행을 반환하는 것을 볼 수 있습니다.

그러나 Total Sales 열을 만들면 SUMMARIZECOLUMNS 필터가 Total Sales에 대한 빈 값을 포함하는 행을 제거합니다. 이제 테이블에는 333개 행 대신 323개 행만 포함됩니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

해당 행을 다시 가져올 수 있는 두 가지 옵션이 있습니다. 첫 번째 옵션은 Total Sales 뒤에 0을 추가하는 것입니다. 결과에서 10개의 행이 Total Sales에 대해 0 값을 반환하는 것을 볼 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

그러나 이 옵션이 항상 최상의 결과를 생성하는 것은 아닙니다. 대신 이 문제를 해결하는 데 사용할 수 있는 특정 함수인 ADDMISSINGITEMS 함수 가 있습니다 .

이 기능을 사용하려면 EVALUATE 뒤에 배치하십시오. 첫 번째 인수에서 열을 작성하십시오. 또한 이러한 열을 SUMMARIZECOLUMNS의 groupBy 매개변수에 붙여넣어야 합니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

이 쿼리를 실행하면 이제 테이블이 333개의 행을 반환하는 것을 볼 수 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

Total Sales 열을 정렬하고 0을 제거하면 테이블의 Total Sales 열 아래에 빈 값이 반환됩니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

따라서 0을 보고하는 대신 테이블은 SUMMARIZECOLUMNS 함수에 의해 제거된 행에 대해 공백을 반환합니다.

ADDMISSINGITEMS 및 FILTER 사용

와 함께 ADDMISSINGITEMS 함수를 사용할 수도 있습니다 . 예를 들어 "Tailspin Toys"가 포함된 행을 필터링해 보겠습니다. 쿼리에서 Brand 열에 Tailspin Toys( <> )가 포함되어서는 안 된다고 나와 있습니다.

다양한 키워드 및 기능을 사용하는 DAX 쿼리 예제

F5 키를 누르면 이제 테이블이 331개 행만 반환하는 것을 볼 수 있습니다. 따라서 "Tailspin Toys" 브랜드가 포함된 두 행이 제거되었습니다.

결론

이 자습서에서 설명하는 두 가지 키워드와 두 가지 함수는 DAX Studio에서 쿼리를 생성할 때 필요한 기본 지식입니다. 이는 보다 복잡한 실제 응용 프로그램을 처리할 때 유용합니다.

DAX Studio는 DAX 쿼리를 실행하고 분석하기 위한 강력한 도구입니다. 나중에 고급 쿼리를 처리할 때 더 쉽게 처리할 수 있도록 이 소프트웨어의 코딩 기본 사항을 배우는 것이 중요합니다.

LuckyTemplates 전문가


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것