기금넷 공식사이트 - 금 선물 - DAX: 입문부터 3-4- 1 필터 기능 이해
DAX: 입문부터 3-4- 1 필터 기능 이해
필터 구문은 다음과 같습니다.
Filter 함수는 테이블을 반복하고 각 행은 조건이 충족되는지 여부를 확인한 다음 부울 값을 반환합니다. 조건이 참인 경우 필터는 해당 행을 반환하고, 그렇지 않은 경우 해당 행을 건너뜁니다.
참고:
논리적 관점에서 filter 함수는 테이블의 각 행에 대해 조건부 판단을 수행합니다. 그러나 DAX 는 판단을 수행할 때 최적화된 처리 방법을 사용하며 중복 행 제거 방법을 사용하여 판단 횟수를 줄입니다. 판단한 데이터는 실제로 필터링 함수가 처리하는 테이블의 세분성과 같습니다. 이 세분성은 필터링 함수의 성능을 결정하며 DAX 최적화의 중요한 포인트이기도 합니다.
예를 들어 다음 질의에서는 brand = "Fabrikam "만 선택합니다.
테이블 함수를 필터 매개 변수로 사용할 수 있으므로 필터 함수 내에 필터 함수를 중첩할 수 있습니다. 이 필터는 가장 안쪽 필터를 먼저 실행합니다. 일반적으로 두 필터를 중첩하면 동일한 결과가 산출되고 AND 함수에 포함된 논리 조건의 조합도 동일합니다. 즉, 다음 명령문은 동일한 결과를 얻습니다.
그러나 테이블 테이블에 많은 행이 포함되어 있거나 매우 복잡한 경우 두 공식의 성능은 크게 다를 수 있습니다. 예를 들어, 다음 질의에서는 fabrikm 의 제품을 반환합니다. 가격은 비용의 3 배입니다.
이러한 쿼리는 두 조건을 모두 제품 테이블의 모든 행에 추가하여 판단합니다. 그래서 당신은 그것을 바꿀 수 있습니다. 두 가지 조건이 있는데 그 중 하나가 더 빠르고 쉽게 작동한다면, 먼저 중첩 된 filter 를 사용하여 filter 조건을 처리 할 수 있습니다. 예를 들면. 다음 질의에서는 먼저 가격과 비용을 필터링한 다음 brand =' fabricam' 을 필터링한 다음 결과를 산출합니다.
순서를 조정하면 실행 순서도 조정됩니다. 아래와 같이' Fabricam' 을 먼저 필터링한 다음 가격과 비용을 걸러낸다.
이 기능은 DAX 표현식을 최적화하는 데 유용합니다. 먼저 보다 효율적인 필터링 기준을 실행하도록 선택할 수 있습니다. 그러나 컨텍스트를 완전히 파악하지 못한 상태에서 이 방법으로 문을 최적화하기 시작하지 마십시오. 16 장에서는 이 최적화에 대해 자세히 살펴보겠습니다. 이 사건의 역할은 단지 중첩할 때의 조작 순서를 깨닫게 하는 것이다.
주요 관심 분야:
일반적으로 중첩 함수의 경우 순서는 항상 가장 안쪽에서 시작하여 가장 바깥쪽까지 이어집니다. 그러나 매개변수의 특수 할당 조건으로 인해 계산은 계산 가능한 테이블과 다릅니다. 대부분의 경우 유사한 상황에서 filter 및 calculatetable 함수를 사용합니다. 사용할 때 차이점을 염두에 두어야 합니다.