히트 매트릭스, 테이블, 피벗 테이블, 격자, 그래프에 데이터를 표시하기 위한 방법으로 그룹 또는 계산된 항목을 생성할 수 있습니다.
그룹 및 계산된 항목을 사용하면 데이터 소스에 존재하지 않는 새 "멤버"를 열에 추가할 수 있습니다. 이러한 멤버를 "사용자 정의 멤버"라고도 합니다.
그룹은 사용자가 선택한 고정된 멤버 목록이거나 선택 단계로 생성된 정적/동적 목록입니다. 그룹은 멤버로 표현됩니다. 계층 열에 대해 생성된 그룹은 드릴할 수 있지만, 속성 열에 대해 생성된 그룹은 드릴할 수 없습니다.
그룹은 표시할 측정 단위 열의 기존 집계 함수를 사용합니다. Oracle BI Server의 가장 낮은 세부 레벨부터 집계가 수행되지만, 값이 이중 카운트되지 않습니다.
계산된 항목은 멤버 간의 계산이며, 드릴할 수 없는 단일 멤버로 표현됩니다. 계산된 항목을 생성할 때 합계, 평균, 사용자 정의 공식 등과 같이 항목 집계 방법으로 선택한 새 멤버를 추가합니다. 가장 낮은 세부 레벨이 아닌, 집계된 레벨에서 계산이 수행됩니다.
그룹 또는 계산된 항목을 생성하는 중 모든 뷰 옵션을 선택하면 그룹 및 계산된 항목이 모두 전체 분석에 대한 선택 단계가 됩니다. 따라서 해당 분석의 모든 뷰에 적용됩니다. 이러한 그룹 및 계산된 항목은 인라인 또는 이름이 지정된 객체로 저장할 수 있습니다. 자세한 내용은 인라인 또는 이름이 지정된 객체로 저장을 참조하십시오.
현재 뷰 옵션을 선택하여 특정 뷰에 대한 그룹 또는 계산된 항목을 생성하는 경우, 그룹 또는 계산된 항목이 특정 활성 뷰에만 적용됩니다.
그룹(다른 제품에서 "저장된 선택"이라고도 함)은 사용자가 정의한 열 멤버입니다.
그룹은 멤버 목록이거나 멤버 목록 생성을 위해 실행할 수 있는 선택 단계 집합일 수 있습니다. 모든 멤버는 동일한 속성 열 또는 계층 열에서 와야 하며, 계층 열에서 멤버는 서로 다른 계층 레벨에서 올 수 있습니다. 그룹은 항상 열 목록의 맨 아래에 (선택 단계 창에 표시된 대로) 추가된 순서대로 표시됩니다. 그룹은 멤버 또는 다른 그룹을 포함할 수 있습니다. 사용자 정의 그룹을 생성하고 사용자 정의 그룹을 뷰 내의 열에 추가할 수 있습니다.
그룹을 카탈로그에 저장하여 재사용할 수 있습니다. 예를 들어, 그룹을 분석 및 대시보드 열 프롬프트나 변수 프롬프트에 적용할 수 있습니다. 그룹이 프롬프트에 적용된 경우 런타임에 사용자에게 그룹을 선택 목록 옵션으로 제시하거나 그룹 멤버를 선택 목록 옵션으로 제시할 수 있습니다. 사용자가 그룹 또는 열 멤버를 선택할 때 선택 단계를 프롬프트로 무효화하는 방법에 대한 자세한 내용은 선택 단계보다 열 프롬프트 우선 적용를 참조하십시오.
계산된 항목은 멤버 간의 계산이며, 단일 멤버로 표현됩니다.
계산된 항목을 사용하여 Oracle BI 저장소에 지정된 기본 집계 규칙을 무효화하고, 기존 분석에 대해 설계자가 선택한 집계 규칙을 무효화할 수 있습니다. 계산된 항목은 사용자 정의 공식을 사용하거나(기본값) 선택한 멤버를 함수와 결합하여(예: SUM) 정의할 수 있습니다.
계산된 항목은 사용자가 정의한 열 멤버입니다. 계산된 항목은 멤버 또는 다른 계산된 항목을 포함할 수 있습니다. 계산된 항목은 항상 열 목록의 맨 아래에 (선택 단계 창에 표시된 대로) 추가된 순서대로 표시됩니다. 계산된 항목을 카탈로그에 저장하여 재사용할 수 있습니다.
계산된 항목은 멤버 집합을 단일 엔티티로 보고 조작할 때 유용합니다. 예를 들어, 다음에 대해 계산된 항목을 정의할 수 있습니다.
지역의 주요 계정
첨단 제품
9월의 처음 세 주와 같은 비표준 기간
다양한 곳에서 열의 계산된 항목을 생성할 수 있습니다. 테이블 및 피벗 테이블에 합계 추가의 설명과 같이 계산은 측정 단위에 적용된 기본 집계 규칙과 다릅니다. 내부적으로, 계산된 항목은 SQL SELECT 문으로 처리되고 지정된 함수가 결과 집합에 수행됩니다. SQL 함수에 대한 자세한 내용은 논리적 SQL 참조를 참조하십시오.
뷰에 대해 계산된 항목 또는 그룹을 생성할 수 있습니다.
다음 절차를 사용하여 계산된 항목 또는 그룹을 생성할 수 있습니다.
계산된 항목 또는 그룹을 생성하려면 다음과 같이 하십시오.
노트:
Oracle OLAP이 분석용 데이터 소스인 경우 그룹을 사용할 때 오류가 발생할 수 있습니다. 그룹이 뷰에 포함된 경우 오류 메시지가 표시되면 해당 분석의 측정 단위 열이 외부 집계를 사용하는 것이 문제일 수 있습니다.다음 가능한 해결책 중 하나를 구현할 수 있도록 관리자에게 문의하십시오.
저장소에 측정 단위의 집계 규칙을 명시적으로 지정합니다.
Oracle OLAP 분석 작업 영역에 적절한 값 그룹을 차원 멤버로 생성합니다.
그룹 및 계산된 항목은 사용자에게 가장 유용한 정보를 제공하도록 업데이트할 수 있습니다.
다양한 방법으로 그룹 및 계산된 항목을 편집할 수 있습니다.
[선택 단계] 창에서 계산된 항목 또는 그룹의 링크를 누르고 편집을 눌러 적절한 대화상자를 표시합니다.
객체를 카탈로그에 저장한 경우 카탈로그 창에서 객체를 선택하고 편집을 눌러 적절한 대화상자를 표시합니다.
히트 매트릭스, 테이블, 피벗 테이블, 격자(바깥쪽 모서리)에서 그룹 또는 계산된 항목을 마우스 오른쪽 단추로 누르고 그룹 편집 또는 계산된 항목 편집을 선택합니다.
다음 목록에 설명된 대로, 그룹 또는 계산된 항목의 값이 필터 및 선택 단계의 영향을 받을 수 있습니다.
필터 — 필터로 제거되지 않은 멤버만 사용하여 그룹 또는 계산된 항목을 평가합니다. 예를 들어, SUM(EAST + WEST)의 계산된 항목이 있지만 WEST가 필터를 통해 제거된 경우 EAST 합계만 계산된 항목에 포함됩니다. 모든 멤버가 제거된 경우 널 값이 반환되고 히트 매트릭스, 테이블, 피벗 테이블, 격자에 빈 셀로 표시됩니다.
선택 단계 — 선택 단계를 생성할 때 단계에 그룹 또는 계산된 항목을 추가할 수 있습니다. 후속 단계인 [특정 멤버만 유지] 또는 [제거]에서 그룹 또는 계산된 항목에 포함된 멤버를 참조할 수 있습니다.
그룹 목록은 후속 단계에서 유지/제거된 멤버의 영향을 받지만 그룹 아웃라인 값은 그대로 남습니다. 예를 들어, MyNewYork 그룹에 Albany 및 Buffalo가 포함되고 해당 값이 100이라고 가정해보십시오. Albany는 나중 단계에서 제거됩니다. MyNewYork 그룹 값은 그대로 100이지만 Albany는 더 이상 그룹에 나열되지 않습니다.
계산된 항목은 후속 단계에서 유지/제거된 멤버의 영향을 받지 않습니다.
현재 뷰 옵션 단추를 사용하여 생성된 모든 뷰에서 그룹이나 계산된 항목을 제거할 경우 그룹이나 계산된 항목은 그대로 남고 이후에 추가하는 새로운 뷰에는 추가되지 않습니다.
모든 뷰 옵션 단추를 사용하여 생성된 모든 뷰에서 그룹이나 계산된 항목을 제거할 경우 그룹이나 계산된 항목은 그대로 남고 이후에 추가하는 새로운 뷰에도 추가됩니다.
마우스 오른쪽 단추 메뉴를 사용하여 그룹이나 계산된 항목을 제거할 경우 다음 사항을 고려하십시오.
대시보드 페이지 내의 값에서 제거 — 계산된 항목이나 그룹이 현재 뷰에서만 제거됩니다.
뷰 편집기 내의 값에서 제거 — 계산된 항목이나 그룹이 모든 뷰에서 제거됩니다.
그룹을 다른 분석에서 생성된 동일한 열에 추가할 수 있습니다.
분석에 추가된 그룹은 멤버 목록 또는 선택 단계 집합일 수 있습니다. 이러한 그룹에 대한 자세한 내용은 그룹 객체로 선택 단계 저장을 참조하십시오.
다음 절차는 결과 탭을 사용하여 그룹을 추가하는 방법을 설명합니다. 그러나 [카탈로그] 창이 표시된 곳이면 어디서든 작업을 수행할 수 있습니다. 다음 방법을 사용하여 그룹을 추가할 수도 있습니다.
멤버 단계 편집 대화상자의 작업 상자에서 그룹 또는 계산된 항목으로 시작을 선택하고 [사용 가능한 목록]에서 [카탈로그] 창의 그룹을 선택합니다.
선택 단계 창에서 적절한 열에 대해 새 단계를 누르고, 그룹 또는 계산된 항목 추가를 선택하고, 기존 그룹 및 계산된 항목 선택을 선택하고, 결과 대화상자에서 그룹을 선택합니다.
카탈로그 창을 사용하여 그룹을 다른 분석에 추가하려면 다음과 같이 하십시오.
그룹 및 계산된 항목을 작업하면서 그룹 내에 그룹을 생성하는 등 "중첩"이 필요할 수 있습니다.
다음 목록은 그룹 및 계산된 항목 중첩에 대한 다양한 시나리오를 제공합니다.
그룹을 중첩할 수 있습니다. 즉, 다른 그룹을 포함할 수 있습니다. 중첩된 그룹은 "평평화"됩니다. 예를 들어, my_favorite_countries 그룹에 my_favorite_cities 그룹을 포함한다고 가정해보십시오. 테이블에 my_favorite_countries 그룹을 표시하고 확장하면 my_favorite_cities 그룹이 보이지 않습니다. 대신, my_favorite_cities 그룹의 멤버 값이 보입니다.
계산된 항목을 중첩할 수 있습니다. 즉, 다른 계산된 항목을 포함할 수 있습니다.
그룹은 계산된 항목을 포함할 수 없고, 계산된 항목은 그룹을 포함할 수 없습니다.
선택 단계를 작업할 때:
그룹 또는 계산된 항목을 포함하는 선택 단계를, 런타임에 결과가 생성되는 단계 시리즈로 저장하거나 고정된 결과가 매번 다시 표시되도록 저장할 수 있습니다.
카탈로그 창을 사용하여 단계의 저장된 선택인 그룹을 적용할 수 있습니다. 저장된 선택이 계산된 항목의 단계를 포함할 때 이렇게 하면 그룹의 멤버만 추가할 수 있습니다. 그룹 자체는 추가할 수 없습니다.
계산된 항목을 이해하려면 SQL에 대한 기본 이해가 필요합니다.
이 단원의 예제와 설명은 사용자가 SQL 문과 해당 구문에 대한 기본적인 지식을 갖춘 것으로 간주합니다. 이러한 예제에 표시된 구문은 새 계산된 항목 대화상자에서 사용자 정의 공식 함수에 적용됩니다. 이러한 예제는 가설을 위한 것입니다. 따라서 모든 가능한 계산된 항목이 표시되지 않을 수 있습니다.
예 6-1에서는 각 SoftDrinkA, SoftDrinkB, SoftDrinkC 제품에 대한 현재 측정 단위 값(예: 달러 판매액)을 구하는 데 필요한 코드를 보여주고 값을 더합니다.
이것은 함수 목록에서 Sum을 선택하고 'SoftDrinkA','SoftDrinkB','SoftDrinkC'를 입력하거나 눌러서 함수 필드에 추가하는 것과 같습니다.
예 6-2에서는 SoftDrinkA 또는 SoftDrinkB(더 낮은 쪽)에 대한 최소 현재 측정 단위(예: 달러 판매액)를 구합니다.
예 6-1 및 예 6-2에서 각 함수의 계산된 항목은 바깥층(예: Product 층)의 각 멤버에 대해 수행됩니다. 예를 들어, Year 및 Product가 축에 배치되고 앞서 계산된 항목 중 하나가 Product 층에 작성되면 결과가 연간 단위로 계산됩니다.
예 6-3에서는 바깥층(예: Year 및 Product)의 각 항목 값을 구해서 더합니다.
속성 열(예: SoftDrinkA)에 이름이 지정된 항목을 지정하는 대신, $n 또는 $-n을 지정할 수 있습니다. 여기서 n은 항목의 행 위치를 나타내는 정수입니다. $n을 지정할 경우 n번째 행에서 측정을 가져옵니다. $-n을 지정할 경우 마지막 행의 n번째에서 측정을 가져옵니다.
예를 들어, 달러 판매액에 대해 $1은 데이터 집합의 첫번째 행에서 측정값을 구하고, $-1은 데이터 집합의 마지막 행에서 측정값을 구합니다.
예 6-4에서는 첫번째, 두번째, 세번째 행에서 현재 측정 단위(예: 달러 판매액)를 구해서 합산합니다.
예 6-5는 SoftDrinkA, SoftDrinkB 및 SoftDrinkC의 판매액을 더합니다. 예제에 표시된 두 계산된 항목은 동등합니다. 즉, Sum은 기본 함수이므로 생략할 수 있습니다.
예 6-6에서는 SoftDrinkA 판매액을 diet SoftDrinkA 판매액과 더하고 SoftDrinkB 판매액을 diet SoftDrinkB 판매액과 더해서 이러한 두 금액의 최대값을 반환합니다.
예 6-1 현재 측정 단위 값 구하기
sum('SoftDrinkA','SoftDrinkB','SoftDrinkC')
예 6-2 최소 현재 측정 단위 구하기
min('SoftDrinkA','SoftDrinkB')
예 6-3 바깥층의 각 항목 값 구하기
sum(*)
예 6-4 측정 단위 값을 구해서 합산하기
sum($1,$2,$3)
예 6-5 판매액 값 추가
'SoftDrinkA' + 'SoftDrinkB' + 'SoftDrinkC'
sum('SoftDrinkA','SoftDrinkB','SoftDrinkC')
예 6-6 판매액 값을 더해서 최대값 반환하기
max('SoftDrinkA' + 'diet SoftDrinkA', 'SoftDrinkB' + 'diet SoftDrinkB')