mssql rollup 예제

mssql rollup 예제

그러나 롤업 대신 CUBE를 사용했다면 마지막 `총` 행이 이미 계산됩니다. 실제 예제에서는 보고서를 수행하는 데 시간이 소요됩니다. 최대 10개의 차원에서 큐브를 수행할 수 있습니다. 그들은 집계를 대량 하는 경향이 있지만, 그들은 너무 비용이 많이 드는 되지 않습니다. 롤업의 이 표준 예를 들어 보겠습니다(AdventureWorks 2012를 사용하고 있습니다). 예를 들어 이 쿼리는 국가, 지역 및 판매에 대한 열이 있는 Sales 테이블을 만듭니다. 4개의 행을 삽입하고 두 행에는 국가 및 지역에 대한 일치하는 값이 있습니다. 완전히 큰 설명. 몇 단어, 좋은 예. 심지어 나는 그것을 🙂 그것을 견딜 수 있었다.

나는 그것이 더 좋을 수 있다고 생각하지 않습니다. 롤업을 사용하지 않고 동일한 효과를 얻으려면 국가, 주 및 도시의 총 인구를 검색하려면 다음과 같은 작업을 수행해야합니다 (AdventureWorks2012) 예를 들어. 롤업은 인구를 세 가지 수준으로 합산합니다. 먼저 국가 – 국가 – 도시 수준에서 인구의 합계를 반환합니다. 그런 다음 국가 국가 수준에서 인구를 합산하고 마지막으로 국가 수준에서 인구를 합산할 것입니다. 그것은 또한 총 레벨을 제공 할 것입니다. ROLLUP은 입력 열 간의 계층 구조를 가정합니다. 예를 들어 입력 열이 (c1, c2) 계층 구조 c1 > c2인 경우. ROLLUP은 이 계층 구조를 고려하여 의미가 있는 모든 그룹화 집합을 생성합니다. 이것이 우리가 종종 롤업을 사용하여 보고 목적으로 소계 및 총합계를 생성하는 이유입니다.

다음 예제에서는 HAVING 절을 사용하여 GROUP BY 절에서 생성된 그룹 중 결과 집합에 포함할 그룹을 지정합니다. 모든 부서에 속한 모든 남녀 직원의 모든 급여에 대한 총 합계와 함께 부서 및 성별 수준에서 직원 급여의 합계를 하위 합계와 함께 원하는 예를 살펴 보겠습니다. 예를 들어 그룹별 롤업(국가, 지역) 및 그룹별 그룹별 집합(롤업(국가, 지역))은 동일한 결과를 반환합니다. 집합을 그룹화한다는 것은 SQL에 결과를 여러 번 그룹화하도록 요청하는 것을 의미합니다. 그룹화 집합 구문을 사용하여 계산할 집계를 정확하게 지정할 수 있습니다. 다음은 예제입니다. SQL은 그룹화 집합 목록에 대해 생성된 중복 그룹을 통합하지 않습니다. 예를 들어 GROUP BY(), CUBE(국가, 지역))에서 두 요소는 총합계에 대한 행을 반환하고 두 행은 결과에 나열됩니다. 롤업을 사용하여 다음 예제와 같이 계산된 하위 총수를 줄이는 부분 롤업을 수행할 수 있습니다. 이 집계는 일반적인 집계이며, 이 예에서와 같이 스트림 집계 또는 해시 집계(위의 쿼리에 OPTION(HASH GROUP) 절을 추가해 보십시오)를 사용하여 구현할 수 있습니다. 또한 병렬화할 수도 있습니다.

이 예제에서는 이전 버전과 호환되는 구문을 사용합니다. 8192 (213) 그룹화 집합을 생성 하 고 실패 합니다. GROUPING_ID 함수는 GROUP BY 목록의 식과 정확히 일치해야 하는 목록을 전달합니다. GROUPING_ID는 각 요약 열의 비트맵으로 만들어집니다. 예를 들어 영토 열에 영역 이름이 아닌 `all` 영역을 의미하는 NULL이 있고 두 번째 열로 나열된 경우 왼쪽에서 두 번째 비트가 설정됩니다.

אין תגובות

מצטער, טופס התגובה סגור בשלב זה.