2 Agosto 2019

rollup 예제

ROLLUP은 입력 열 간의 계층 구조를 가정합니다. 예를 들어 입력 열이 (c1, c2) 계층 구조 c1 > c2인 경우. ROLLUP은 이 계층 구조를 고려하여 의미가 있는 모든 그룹화 집합을 생성합니다. 이것이 우리가 종종 롤업을 사용하여 보고 목적으로 소계 및 총합계를 생성하는 이유입니다. 패키지에서 테스트의 시작점입니다. 예제와 같이 lib/에서 테스트할 코드를 가져와야 합니다. npm 테스트를 실행할 때 모카를 사용하도록 프로젝트가 이미 구성되었습니다. 롤업을 사용하여 다음 예제와 같이 계산된 하위 토탈 수를 줄이는 부분 롤업을 수행할 수 있습니다. 이 문서의 예제는 다음과 같은 간단한 차원 테이블에 대해 실행됩니다. 그룹화 집합은 그룹화하는 열 집합입니다. 예를 들어 웨어하우스에 의해 인벤토리를 반환 하는 쿼리, 그룹화 집합은 (웨어하우스). 출력에서 볼 수 있듯이 세 번째 행은 ABCbrand에 대해 판매된 제품 수를 표시하고, 여섯 번째 행에는 XYZ 브랜드의 제품 표시 수가 표시됩니다. 마지막 행에는 모든 브랜드 및 세그먼트에 대해 판매된 총 제품이 표시되는 총 합계가 표시됩니다.

이 예에서 계층 구조는 브랜드 > 세그먼트입니다. 이 플러그인은 롤업과 이스탄불 사이의 원활한 통합을 제공하여 프로젝트의 코드 검사 보고서를 생성합니다. 테스트를 작성할 계획이 없거나 코드 검사에 신경 쓰지 않는 경우 이스탄불과 함께 안전하게 제거할 수 있습니다. 이 파일은 응용 프로그램의 기본 소스 파일이며 패키지의 기능을 구현하기 위해 편집을 시작하는 기본 파일입니다. 이 예제와 같이 이 파일에서 다른 파일을 일반적으로 패키지를 요구하는 방법(예: lib/utils.js)과 유사하게 가져올 수 있습니다. 예를 들어 봅시다. 다음 CUBE(d1, d2,d3)는 8개의 가능한 그룹화 세트를 정의합니다. 연결된 그룹화는 쉼표로 구분된 여러 그룹화 집합, CUBEs 또는 ROLLUPs를 함께 배치하여 정의됩니다. 생성된 그룹화는 개별 그룹화 세트에 의해 생성된 모든 그룹의 교차 곱입니다.

예를 보면 이것이 무엇을 의미하는지 이해하는 것이 조금 더 쉬울 수 있습니다. 다음 그룹화 SET은 fact_1_id 열에 대한 그룹과 fact_id_2 열에 대해 하나씩 하위 계열의 2개 그룹으로 생성됩니다. 결과에서 볼 수 있듯이 웨어하우스 열의 NULL 값은 총 총 수퍼 집계 줄을 지정합니다. 이 예제에서 ROLLUP 옵션을 사용하면 쿼리가 모든 웨어하우스의 총 제품을 표시하는 다른 행을 생성합니다. 생성된 소계 수를 줄이기 위해 부분 롤업을 수행할 수도 있습니다. 롤업(d1,d2,d3)은 계층 구조 d1 > d2 > d3를 가정하여 4개의 그룹화 세트만 생성합니다. 이 구문은 오라클, 마이크로소프트 SQL 서버 및 PostgreSQL에서 지원됩니다. 그러나 MySQL은 아래와 같이 약간 다른 구문을 가지고 있습니다. 이 구문에서 d1, d2 및 d3는 차원 열입니다. 문은 계층 구조 d1 > d2 > d3를 기준으로 열 c4의 값 집계를 계산합니다. .

이전 세 쿼리의 출력은 다음과 같은 그룹화를 생성합니다. 다음 쿼리는 이전 큐브의 반복이지만 큐브의 각 차원에 대해 GROUPING 함수가 추가되었습니다. 위의 구문에서 ROLLUP(c1,c2)는 다음 그룹화 세트 3가지를 생성합니다. 다음 그룹화 SET은 fact_3_id 열과 fact_4_id 열에 대한 다른 2개의 하위 그룹을 생성합니다. 데모를 위해 GROUPING SET 자습서에 만든 sales.sales_요약 테이블을 다시 사용합니다. sales.sales_summary 테이블을 만들지 않은 경우 다음 문을 사용하여 만들 수 있습니다. 이 것의 영향은 다음 두 문에 명확하게 표시되며, 그 출력은 여기와 여기에 표시됩니다.

Contact us

Get in touch with us!