SharePoint의 계산된 열 | 개요
SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.
이 자습서에서는 Server Timings 창과 해당 쿼리 계획을 사용하여 DAX에서 함수가 작동하는 방식을 알아봅니다 .
CROSSJOIN 함수는 두 테이블의 데카르트 곱을 만드는 데 사용할 수 있습니다. 데카르트 곱은 두 개 이상의 테이블에서 가능한 모든 행 조합의 집합입니다.
아래 DAX 코드는 이 자습서에서 사용됩니다.
이러한 조합 중 일부가 팩트 테이블 에 존재하지 않는 경우에도 CROSSJOIN 함수가 제품 브랜드 및 색상의 조합을 생성하는 것을 볼 수 있습니다 . 결과적으로 총 176개의 행이 있는 테이블이 생성됩니다.
Server Timings 탭에서 첫 번째 쿼리는 Products 테이블에서 Brand를 검색하는 반면 두 번째 쿼리는 Color를 검색합니다.
논리적 쿼리 계획 에서 첫 번째 줄은 결과를 테이블 형식으로 반환합니다. 제품 테이블의 두 번째 및 세 번째 줄은 각각 색상과 브랜드를 스캔합니다.
데이터가 수신되면 수식 엔진은 테이블을 반복하여 두 열의 조합을 생성합니다. 2행의 CrossApply는 CROSSJOIN 함수에 해당합니다.
목차
DAX에서 CROSSJOIN 결과 필터링
함수를 사용하여 CROSSJOIN 결과를 필터링 할 수 있습니다 . 예를 들어 빨간색 제품만 표시하는 데 사용할 수 있습니다.
그러나 FILTER 인수 내에 CROSSJOIN 함수를 배치할 수 없음 을 기억하십시오 .
이제 이 코드를 실행하고 서버 타이밍 탭을 확인하면 필터 컨텍스트가 쿼리에서 WHERE 절로 나타나지 않는 것을 볼 수 있습니다.
CROSSJOIN 함수는 수식 엔진 에 의해서만 해결될 수 있습니다 . Storage Engine 에서만 해결할 수 있는 기능인 FILTER와 사이에 코드가 들어와서 작동하지 않습니다 . 따라서 CROSSJOIN으로 인해 이 두 함수 사이의 루프가 중단되었습니다.
따라서 필터가 작동하려면 CROSSJOIN 인수 내에 FILTER 함수를 배치해야 합니다.
이제 이 코드를 실행하고 Server Timings 탭을 확인하면 FILTER 함수가 이제 WHERE 절로 표시되는 것을 볼 수 있습니다.
논리적 쿼리 계획에서 Filter Operator 대신 Filter VertiPaq이 사용되는 것을 볼 수 있습니다.
코드의 새 필터 조건이 스토리지 엔진으로 푸시다운될 수 있기 때문입니다. 결과가 반환된 후 CROSSJOIN 인수는 수식 엔진 내에서 수행됩니다.
IN 연산자
FILTER 인수에서 등호 대신 연산자를 사용할 수도 있습니다 .
IN 연산자는 FILTER 함수의 식 인수 내에서 값이 값 목록 또는 테이블 내에 포함되어 있는지 여부에 따라 테이블을 필터링하는 데 사용할 수 있습니다.
FILTER – IN 조합을 사용하는 경우 DAX 엔진은 제품 색상이 빨간색인지 검은색인지 확인하는 IsEmpty 필터를 수행해야 합니다.
CROSSJOIN DAX 결과에 Total Sales 열 추가
다른 기능도 CROSSJOIN과 함께 사용할 수 있습니다.
함수를 사용하여 테이블에 다른 열을 추가한 다음 표시하려는 정보의 인수를 작성할 수 있습니다.
이 예에서는 Total Sales 열을 추가해 보겠습니다.
코드를 실행하면 결과는 여전히 176개 행을 반환합니다. 그러나 일부 조합은 Total Sales 열에 빈 값이 있습니다. 이러한 조합에는 Sales 테이블에 해당 행이 없기 때문입니다.
서버 타이밍 탭에서 코드는 먼저 브랜드와 색상을 선택합니다. 그런 다음 수량과 판매 순 가격의 곱을 합산합니다.
이 경우 DAX 엔진은 먼저 Sales 테이블의 해당 행과 함께 Products 테이블 내부에 있는 브랜드 및 색상의 모든 조합을 검색합니다. 그런 다음 브랜드 및 색상 열을 별도로 검색합니다.
물리적 쿼리 계획에서 두 개의 데이터 캐시를 볼 수 있습니다. 하나는 브랜드용이고 다른 하나는 색상용입니다. 총 레코드를 곱하면 176행이 됩니다.
그런 다음 해당 176개 행에 대해 조회를 수행하여 Sales 테이블에 해당 값이 있는지 확인합니다. 111개의 행에만 값이 있음을 알 수 있습니다. 나머지 65개 행은 공백을 반환합니다.
또한 CROSSJOIN 인수에 더 많은 열을 추가하면 결과도 더 많은 행을 반환합니다.
결론
DAX CROSSJOIN 함수는 한 테이블의 행을 다른 테이블의 행과 결합하여 새 테이블을 생성합니다. 이 함수는 SQL의 CROSS JOIN 절과 유사하며 데이터 모델에서 더 복잡한 쿼리를 만드는 데 사용할 수 있습니다.
둘 이상의 테이블에서 가능한 모든 값 조합 목록을 생성할 수 있습니다. 또한 데이터 분석, 테스트 또는 성능 벤치마킹에 유용할 수 있는 많은 수의 행이 있는 새 테이블을 빠르게 만드는 데 사용할 수 있습니다.
전반적으로 CROSSJOIN 함수는 여러 테이블의 데이터를 결합하거나 가능한 모든 조합 목록을 생성해야 하는 시나리오에서 편리한 도구입니다.
모두 제일 좋다,
SharePoint에서 계산된 열의 중요성과 목록에서 자동 계산 및 데이터 수집을 수행하는 방법을 알아보세요.
컬렉션 변수를 사용하여 Power Apps에서 변수 만드는 방법 및 유용한 팁에 대해 알아보세요.
Microsoft Flow HTTP 트리거가 수행할 수 있는 작업과 Microsoft Power Automate의 예를 사용하여 이를 사용하는 방법을 알아보고 이해하십시오!
Power Automate 흐름 및 용도에 대해 자세히 알아보세요. 다양한 작업 및 시나리오에 사용할 수 있는 다양한 유형의 흐름에 대해 설명합니다.
조건이 충족되지 않는 경우 흐름에서 작업을 종료하는 Power Automate 종료 작업 컨트롤을 올바르게 사용하는 방법을 알아봅니다.
PowerApps 실행 기능에 대해 자세히 알아보고 자신의 앱에서 바로 웹사이트, 전화, 이메일 및 기타 앱과 같은 기타 서비스를 실행하십시오.
타사 애플리케이션 통합과 관련하여 Power Automate의 HTTP 요청이 작동하는 방식을 배우고 이해합니다.
Power Automate Desktop에서 Send Mouse Click을 사용하는 방법을 알아보고 이것이 어떤 이점을 제공하고 흐름 성능을 개선하는지 알아보십시오.
PowerApps 변수의 작동 방식, 다양한 종류, 각 변수가 앱에 기여할 수 있는 사항을 알아보세요.
이 자습서에서는 Power Automate를 사용하여 웹 또는 데스크톱에서 작업을 자동화하는 방법을 알려줍니다. 데스크톱 흐름 예약에 대한 포괄적인 가이드를 제공합니다.