sql rollup 예제

다음 예제에서는 4097 (212 + 1) 그룹화 집합을 생성 하 고 실패 합니다. 선택 목록에 집계가 없는 경우 선택 목록의 각 열이 그룹 BY 목록에 포함되어야 합니다. 선택 목록의 계산된 열을 그룹 BY 목록에 나열할 수 있지만 필수는 아닙니다. 구문적으로 유효한 SELECT 문의 예: 이 예제에서 ROLLUP 수정자를 추가하면 두 연도를 집계하는 추가 행이 추가됩니다. 이 기능은 그룹화 집합의 요소 중 하나로 유용합니다. 예를 들어 이 문은 각 국가의 총 매출을 기록한 다음 모든 국가에 대한 총합계를 제공합니다. 모든 부서에 속한 모든 남녀 직원의 모든 급여에 대한 총 합계와 함께 부서 및 성별 수준에서 직원 급여의 합계를 하위 합계와 함께 원하는 예를 살펴 보겠습니다. 예를 들어 국가, 주 및 도시의 총 인구를 검색하려는 경우 롤업은 인구를 세 가지 수준으로 합산합니다. 먼저 국가 – 국가 – 도시 수준에서 인구의 합계를 반환합니다. 그런 다음 국가 국가 수준에서 인구를 합산하고 마지막으로 국가 수준에서 인구를 합산할 것입니다. 그것은 또한 총 레벨을 제공 할 것입니다. 이 예제에서는 DISTRIBUTED_AGG 쿼리 힌트를 사용하여 어플라이언스가 집계를 수행하기 전에 CustomerKey 열의 테이블을 섞도록 합니다.

예를 들어 봅시다. 다음 CUBE(d1, d2,d3)는 8개의 가능한 그룹화 집합을 정의합니다. 이것은 우리가 둘 사이의 실질적인 차이점을 볼 수 있습니다 그리고 우리가 그들 각각을 사용해야 할 때. 롤업, 큐브 또는 그룹화 집합을 사용하는 GROUP BY 절의 경우 최대 식 수는 32개입니다. 최대 그룹 수는 4096 (212)입니다. 그룹 BY 절에 4096개 이상의 그룹이 있기 때문에 다음 예제가 실패합니다. ROLLUP 절이 부서별로 그룹화된 직원의 총 급여와 회사의 모든 직원의 총 급여를 계산하는 데 어떻게 도움이 되는지 살펴보겠습니다. 이렇게하려면 간단한 예제 쿼리를 통해 작동합니다. 그룹화 집합은 그룹화 집합 내에서 허용되지 않습니다.

예를 들어 집합그룹별 그룹화(A1, A2,… An, 그룹화 세트 (C1, C2, … Cn)))은 SQL-2006 표준에서 허용되지만 Transact-SQL에서는 허용되지 않습니다. Transact-SQL은 집합(A1, A2,… 그룹별로 그룹화할 수 있도록 합니다. An, C1, C2, … Cn) 또는 그룹별 그룹 집합(A1), (A2), … (안), (C1), (C2), … (Cn))) 첫 번째 GROUP BY 예제와 동일하고 보다 명확한 구문이 있는. 다음 예제는 SalesOrderDetail 테이블에서 각 SalesOrderID에 대한 합계를 검색합니다. 이 예제에서는 어드벤처웍스를 사용합니다. 그룹화 집합은 그룹화하는 열 집합입니다.

예를 들어 웨어하우스에 의해 인벤토리를 반환 하는 쿼리, 그룹화 집합은 (웨어하우스). 예를 들어 그룹별 롤업(국가, 지역) 및 그룹별 그룹별 집합(롤업(국가, 지역))은 동일한 결과를 반환합니다. 결과에서 볼 수 있듯이 웨어하우스 열의 NULL 값은 총 총 수퍼 집계 줄을 지정합니다. 이 예제에서 ROLLUP 옵션을 사용하면 쿼리가 모든 웨어하우스의 총 제품을 표시하는 다른 행을 생성합니다. 이 예제에서 쿼리는 브랜드와 카테고리 사이에 계층 구조가 있다고 가정합니다. GROUP BY 절은 지정된 열에 따라 집계 함수의 결과를 그룹화하는 데 사용됩니다.

Posted in Uncategorized