CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

이 자습서에서는 Server Timings 창과 해당 쿼리 계획을 사용하여 DAX에서 함수가 작동하는 방식을 알아봅니다 .

CROSSJOIN 함수는 두 테이블의 데카르트 곱을 만드는 데 사용할 수 있습니다. 데카르트 곱은 두 개 이상의 테이블에서 가능한 모든 행 조합의 집합입니다.

아래 DAX 코드는 이 자습서에서 사용됩니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

이러한 조합 중 일부가 팩트 테이블 에 존재하지 않는 경우에도 CROSSJOIN 함수가 제품 브랜드 및 색상의 조합을 생성하는 것을 볼 수 있습니다 . 결과적으로 총 176개의 행이 있는 테이블이 생성됩니다.

Server Timings 탭에서 첫 번째 쿼리는 Products 테이블에서 Brand를 검색하는 반면 두 번째 쿼리는 Color를 검색합니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

논리적 쿼리 계획 에서 첫 번째 줄은 결과를 테이블 형식으로 반환합니다. 제품 테이블의 두 번째 및 세 번째 줄은 각각 색상과 브랜드를 스캔합니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

데이터가 수신되면 수식 엔진은 테이블을 반복하여 두 열의 조합을 생성합니다. 2행의 CrossApply는 CROSSJOIN 함수에 해당합니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

목차

DAX에서 CROSSJOIN 결과 필터링

함수를 사용하여 CROSSJOIN 결과를 필터링 할 수 있습니다 . 예를 들어 빨간색 제품만 표시하는 데 사용할 수 있습니다.

그러나 FILTER 인수 내에 CROSSJOIN 함수를 배치할 수 없음 을 기억하십시오 .

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

이제 이 코드를 실행하고 서버 타이밍 탭을 확인하면 필터 컨텍스트가 쿼리에서 WHERE 절로 나타나지 않는 것을 볼 수 있습니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

CROSSJOIN 함수는 수식 엔진 에 의해서만 해결될 수 있습니다 . Storage Engine 에서만 해결할 수 있는 기능인 FILTER와 사이에 코드가 들어와서 작동하지 않습니다 . 따라서 CROSSJOIN으로 인해 이 두 함수 사이의 루프가 중단되었습니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

따라서 필터가 작동하려면 CROSSJOIN 인수 내에 FILTER 함수를 배치해야 합니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

이제 이 코드를 실행하고 Server Timings 탭을 확인하면 FILTER 함수가 이제 WHERE 절로 표시되는 것을 볼 수 있습니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

논리적 쿼리 계획에서 Filter Operator 대신 Filter VertiPaq이 사용되는 것을 볼 수 있습니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

코드의 새 필터 조건이 스토리지 엔진으로 푸시다운될 수 있기 때문입니다. 결과가 반환된 후 CROSSJOIN 인수는 수식 엔진 내에서 수행됩니다.

IN 연산자

FILTER 인수에서 등호 대신 연산자를 사용할 수도 있습니다 .

IN 연산자는 FILTER 함수의 식 인수 내에서 값이 값 목록 또는 테이블 내에 포함되어 있는지 여부에 따라 테이블을 필터링하는 데 사용할 수 있습니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

FILTER – IN 조합을 사용하는 경우 DAX 엔진은 제품 색상이 빨간색인지 검은색인지 확인하는 IsEmpty 필터를 수행해야 합니다.

CROSSJOIN DAX 결과에 Total Sales 열 추가

다른 기능도 CROSSJOIN과 함께 사용할 수 있습니다.

함수를 사용하여 테이블에 다른 열을 추가한 다음 표시하려는 정보의 인수를 작성할 수 있습니다.

이 예에서는 Total Sales 열을 추가해 보겠습니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

코드를 실행하면 결과는 여전히 176개 행을 반환합니다. 그러나 일부 조합은 Total Sales 열에 빈 값이 있습니다. 이러한 조합에는 Sales 테이블에 해당 행이 없기 때문입니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

서버 타이밍 탭에서 코드는 먼저 브랜드와 색상을 선택합니다. 그런 다음 수량과 판매 순 가격의 곱을 합산합니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

이 경우 DAX 엔진은 먼저 Sales 테이블의 해당 행과 함께 Products 테이블 내부에 있는 브랜드 및 색상의 모든 조합을 검색합니다. 그런 다음 브랜드 및 색상 열을 별도로 검색합니다.

물리적 쿼리 계획에서 두 개의 데이터 캐시를 볼 수 있습니다. 하나는 브랜드용이고 다른 하나는 색상용입니다. 총 레코드를 곱하면 176행이 됩니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

그런 다음 해당 176개 행에 대해 조회를 수행하여 Sales 테이블에 해당 값이 있는지 확인합니다. 111개의 행에만 값이 있음을 알 수 있습니다. 나머지 65개 행은 공백을 반환합니다.

또한 CROSSJOIN 인수에 더 많은 열을 추가하면 결과도 더 많은 행을 반환합니다.

CROSSJOIN DAX 기능: 서버 타이밍 및 쿼리 계획

결론

DAX CROSSJOIN 함수는 한 테이블의 행을 다른 테이블의 행과 결합하여 새 테이블을 생성합니다. 이 함수는 SQL의 CROSS JOIN 절과 유사하며 데이터 모델에서 더 복잡한 쿼리를 만드는 데 사용할 수 있습니다.

둘 이상의 테이블에서 가능한 모든 값 조합 목록을 생성할 수 있습니다. 또한 데이터 분석, 테스트 또는 성능 벤치마킹에 유용할 수 있는 많은 수의 행이 있는 새 테이블을 빠르게 만드는 데 사용할 수 있습니다.

전반적으로 CROSSJOIN 함수는 여러 테이블의 데이터를 결합하거나 가능한 모든 조합 목록을 생성해야 하는 시나리오에서 편리한 도구입니다.

모두 제일 좋다,


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

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

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

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 게이트웨이란? 당신이 알아야 할 모든 것