파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
이 자습서에서는 각각에 대한 특정 쿼리 예제와 함께 DAX Studio의 다양한 키워드 및 기능에 대해 알아봅니다.
특히 TOPNSKIP 및 ADDMISSINGITEMS 함수와 함께 ORDER BY 및 START AT 키워드에 대해 알아봅니다.
목차
DAX 쿼리 예: ORDER BY 키워드
ORDER BY 키워드를 사용하면 데이터 세트를 정렬할 수 있습니다.
기본 예
예를 들어 ORDER BY 키워드를 사용하여 열을 사전순으로 정렬할 수 있습니다.
첫 번째 행 데이터가 "A"로 시작하는 것을 볼 수 있습니다. DAX Studio의 기본 정렬 순서는 오름차순 입니다 .
데이터를 내림차순으로 표시하려면 DESC 를 작성하십시오 . 따라서 이 예에서는 A 대신 브랜드 열이 "W"로 시작합니다.
마찬가지로 오름차순으로 되돌리려면 ASC 를 작성하십시오 . 한 번에 여러 열을 정렬할 수도 있습니다. 각 열을 쉼표로 구분하여 원하는 열을 작성하여 이 작업을 수행할 수 있습니다.
실제 사례
이제 ORDER BY 키워드를 사용하는 간단한 실제 애플리케이션을 살펴보겠습니다. 이것은 TABLE 키워드 자습서 에서 사용된 것과 동일한 예입니다 .
이 테이블이 3개의 열을 반환하는 것을 볼 수 있습니다. 첫 번째는 Boring과 Trendy로 구성된 Product Type입니다. 두 번째 열에는 제품 유형별 총 매출이 표시됩니다. 세 번째는 판매 비율을 반환합니다.
이 예에서는 제품 유형을 정렬하는 새 열을 만들어야 합니다. 문 뒤에 COLUMN 키워드를 쓰고 생성하려는 열의 이름을 씁니다.
이 열의 공식은 IF 구문과 동일하지만 "Trendy" 및 "Boring" 대신 이 열에 Trendy는 "1", Boring은 "2"가 표시됩니다.
테이블에서 이 열을 보려면 EVALUATE 구문 아래에 작성하십시오.
그러면 숫자 1과 2로 구성된 테이블에 새 열인 Product Type Sort가 추가된 것을 볼 수 있습니다.
이 열을 정렬하려면 구문 다음에 ORDER BY 키워드를 작성하십시오 . 그런 다음 열 이름 뒤에 원하는 열 정렬 순서에 따라 ASC 또는 DESC를 씁니다.
DAX 쿼리 예: START AT
다음으로 배울 내용은 START AT 키워드입니다.
START AT는 더 이상 사용되지 않는 키워드입니다. 대부분의 DAX 쿼리에는 사용하지 않는 것이 좋습니다. 그러나 여전히 이를 사용하는 일부 DAX 코드를 찾을 수 있습니다. 따라서 그것이 무엇이며 어떤 경우에 사용할 수 있는지 아는 것이 여전히 중요합니다.
기본 예
먼저 EVALUATE 키워드를 작성합니다. 이 예에서는 Products 테이블을 사용합니다. START AT를 쓰기 전에 먼저 ORDER BY를 사용한 다음 포함하려는 열을 지정하십시오.
그런 다음 START AT를 작성할 수 있습니다. 이 구문은 ORDER BY에서 열을 작성한 방법과 유사한 순서를 따릅니다. 이 예에서 제품 키 열은 "2"에서 시작하고 브랜드 열은 "Contoso"에서 시작합니다.
F5 키를 누르면 지정한 열이 쿼리 방향을 따르는 결과 테이블을 볼 수 있습니다.
이제 다른 열이 추가되면 어떻게 되는지 살펴보겠습니다. 이 경우 색상 열은 "은색"에서 시작해야 합니다.
이 쿼리를 실행하면 색상 열 아래의 첫 번째 항목이 "흰색"임을 알 수 있습니다. START AT 사용 시 결과가 항상 모든 조건을 따른다는 보장은 없습니다.
이 예제의 경우 동일한 행에 2, Contoso 및 Silver가 모두 포함된 Products 테이블의 인스턴스가 없습니다. 대신 DAX 엔진은 사용자가 생성한 쿼리와 가장 일치하는 항목을 생성하려고 합니다.
복잡한 예
다른 예를 살펴보겠습니다.
EVALUATE 뒤에 ORDER BY 키워드와 세 개의 지정된 열을 씁니다. 그런 다음 START AT를 작성하십시오. 이 경우 Color 열은 "Red"에서 시작하고 Gender 열은 "M"에서 시작하며 Store Key 열은 "2"에서 시작해야 합니다.
쿼리를 실행한 후 DAX 엔진이 지정된 매개 변수를 일치시키기 위해 최선을 다했음을 알 수 있습니다.
결과에서 두 개의 열이 올바른 반면 Store Key 열은 2가 아닌 199에서 시작한다는 것을 알 수 있습니다. 이는 이 예제의 데이터 모델에 Store Key 2가 존재하지 않기 때문입니다.
느린 DAX 엔진
홈 탭에서 서버 타이밍 버튼을 클릭합니다.
하단에 새 탭이 나타납니다. 실행 드롭다운 화살표에 있는 캐시 지우기 후 실행 버튼을 클릭합니다 .
쿼리를 실행하는 데 DAX Studio 142ms가 걸린다는 것을 알 수 있습니다. START AT 구문을 제거하고 코드를 다시 실행하면 실행하는 데 11ms밖에 걸리지 않는다는 것을 알 수 있습니다.
CallBackDataID 라는 DAX 엔진의 동작을 호출하기 때문에 START AT 구문이 있는 경우 쿼리 실행 시간이 더 오래 걸립니다 .
START AT는 코드를 매우 느리게 만��니다. 꼭 필요한 것이 아니라면 피하는 것이 좋다.
작성 중인 DAX 코드의 전체 성능에 상당한 영향을 미칩니다. 이것이 다른 유사한 기능을 사용하는 것이 가장 좋은 이유입니다.
DAX 쿼리 예: TOPNSKIP 함수
이 튜토리얼에서 다음으로 배울 내용은 TOPNSKIP 함수입니다. 과 유사 하지만 추가 매개변수와 함께 한 가지 미묘한 차이점이 있습니다. 이를 더 잘 이해하기 위해 예를 살펴보겠습니다.
TOPN 대 TOPNSKIP
먼저 EVALUATE 키워드를 작성합니다. 그런 다음 아래에 TOPN 인수를 작성하여 Products Table의 Top 100 행을 봅니다.
이 테이블은 또한 제품 키 열과 관련하여 오름차순으로 정렬되었습니다.
이제 TOPN을 TOPNSKIP으로 교체합니다. 두 번째 인수에서 건너뛸 행 수를 제공합니다. 이 예에서는 10이 지정됩니다.
이를 실행하면 이제 제품 키 열이 11에서 시작하여 110에서 끝나는 것을 볼 수 있습니다. 계산된 테이블 또는 테이블 형식 데이터 모델에서는 TOPNSKIP 함수를 사용할 수 없습니다.
다른 예시
다음 예에서는 고객 테이블의 상위 5000개 행을 살펴보겠습니다. 이 테이블은 Gender 열을 기준으로 오름차순으로 정렬됩니다.
TOPN 함수를 사용하면 테이블이 9,518개의 행을 반환하는 것을 볼 수 있습니다. 이는 상위 5000개 행만 표시하도록 지정한 경우에도 일부 데이터가 필터링되지 않은 상태로 남아 있음을 의미합니다.
그러나 TOPNSKIP 함수를 사용하면 테이블이 Gender 열의 처음 5,000개 행만 반환하는 것을 볼 수 있습니다.
따라서 고객의 성별 열에 특정 성별에 대한 여러 규칙이 있는 경우에도 TOPNSKIP 함수는 처음 5,000개 행만 반환합니다. 이 결과는 TOPN 기능을 사용할 때 보장되지 않습니다.
DAX 쿼리 예: ADDMISSINGITEMS 함수
마지막으로 DAX Studio의 ADDMISSINGITEMS 함수를 살펴보겠습니다 .
SUMMARIZECOLUMNS를 사용하면 기본적으로 결과에서 빈 행을 제거하려고 시도합니다. 예를 들어 제품 색상, 제품 브랜드 및 고객 성별을 요약하는 쿼리를 작성할 수 있습니다.
F5 키를 누르면 테이블이 세 개의 열을 반환하는 것을 볼 수 있습니다. Gender 열은 Male, Female, Blank의 3가지 유형의 성별로 구성됩니다. 공백은 회사를 나타냅니다. 또한 333개의 행을 반환하는 것을 볼 수 있습니다.
그러나 Total Sales 열을 만들면 SUMMARIZECOLUMNS 필터가 Total Sales에 대한 빈 값을 포함하는 행을 제거합니다. 이제 테이블에는 333개 행 대신 323개 행만 포함됩니다.
해당 행을 다시 가져올 수 있는 두 가지 옵션이 있습니다. 첫 번째 옵션은 Total Sales 뒤에 0을 추가하는 것입니다. 결과에서 10개의 행이 Total Sales에 대해 0 값을 반환하는 것을 볼 수 있습니다.
그러나 이 옵션이 항상 최상의 결과를 생성하는 것은 아닙니다. 대신 이 문제를 해결하는 데 사용할 수 있는 특정 함수인 ADDMISSINGITEMS 함수 가 있습니다 .
이 기능을 사용하려면 EVALUATE 뒤에 배치하십시오. 첫 번째 인수에서 열을 작성하십시오. 또한 이러한 열을 SUMMARIZECOLUMNS의 groupBy 매개변수에 붙여넣어야 합니다.
이 쿼리를 실행하면 이제 테이블이 333개의 행을 반환하는 것을 볼 수 있습니다.
Total Sales 열을 정렬하고 0을 제거하면 테이블의 Total Sales 열 아래에 빈 값이 반환됩니다.
따라서 0을 보고하는 대신 테이블은 SUMMARIZECOLUMNS 함수에 의해 제거된 행에 대해 공백을 반환합니다.
ADDMISSINGITEMS 및 FILTER 사용
와 함께 ADDMISSINGITEMS 함수를 사용할 수도 있습니다 . 예를 들어 "Tailspin Toys"가 포함된 행을 필터링해 보겠습니다. 쿼리에서 Brand 열에 Tailspin Toys( <> )가 포함되어서는 안 된다고 나와 있습니다.
F5 키를 누르면 이제 테이블이 331개 행만 반환하는 것을 볼 수 있습니다. 따라서 "Tailspin Toys" 브랜드가 포함된 두 행이 제거되었습니다.
결론
이 자습서에서 설명하는 두 가지 키워드와 두 가지 함수는 DAX Studio에서 쿼리를 생성할 때 필요한 기본 지식입니다. 이는 보다 복잡한 실제 응용 프로그램을 처리할 때 유용합니다.
DAX Studio는 DAX 쿼리를 실행하고 분석하기 위한 강력한 도구입니다. 나중에 고급 쿼리를 처리할 때 더 쉽게 처리할 수 있도록 이 소프트웨어의 코딩 기본 사항을 배우는 것이 중요합니다.
LuckyTemplates 전문가
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것