Tableau

[LOD 표현식] (4) FIXED

응엉잉 2023. 7. 5. 02:16

https://www.youtube.com/watch?v=5WKyLIVVXQw 

 

FIXED는 INCLUDE나 EXCLUDE보다 사용도가 높다

1. 화면의 구성

VLOD를 두고 차원을 더할건지/뺄건지 고민하는 INCLUDE/EXCLUDE

FIXED는 내가 원하는 특정 차원으로 값을 고정해서, 내가 원하는 차원에 대해 데이터를 집계하므로 화면 VIEW를 고려할 필요가 없음

 

2. 결과 종류

include와 exclude는 측정값만이 결과값

fixed는 측정값, 차원 모두 가능

 

3. 작동 순서

INCLUDE와 EXCLUDE는 차원필터에 영향

FIXED는 차원필터보다 계산이 우선시됨 (차원필터를 컨텍스트필터로 바꾸면 컨텍스트필터 -> FIXED 순)

 

Case1 : FIXED LOD에서 선언한 차원이 VLOD에 포함된 경우

FIXED LOD에서 집계된 Levle과 화면의 VLOD가 같은 경우

INCLUDE 방식으로 재집계할 필요도, EXCLUDE 형태로 복제할 필요도 없음

-> 1차 집계 결과를 그대로 표현 (LOD 표현식으로 사용할 이유가 없다는 뜻)

 

VLOD가 FIXED LOD에서 선언된 Level보다 깊은 경우

ex) VLOD : 생산자 / FIXED LOD : Sub-Category

FIXED LOD에서 선언된 Level에 따라 집계된 값이 복제 (화면의 VLOD에 맞추기 위해)

Case2 : FIXED LOD에서 선언한 차원이 VLOD에 포함되지 않은 경우

ex) VLOD : Category, FIXED LOD : Sub-Category

 

[Sales-Avg by Sub-Category]

{FIXED[Sub-Category] : AVG([Sales])}

1차 집계 : Sub-Categoy 차원에서 Sales의 평균을 집계

2차 집계 : [Sales-Avg by Sub-Category] 를 평균으로 집계 = Sub-Categoty

VLOD 레벨에서 보여주기 위해서는 FIXED 계산 이후 한번 더 집계를 해줘야 함 (INCLUDE와 완전히 동일)

 

<결론>

1. FIXED LOD에서 선언한 차원과 집계방식에 따라 1차 계산이 이루어짐

2. VLOD로 넘어와서 ... FIXED LOD에서 선언된 차원의 Level에서 측정값이 존재하는지 Scan

3. 2번에서 존재하는 값에 대해서만 재집계

 

[Prac : 각 Region별로 수익을 낸 주문과 손실을 낸 주문의 매출 비중]

각 Region의 매출 비중 -> 테이블 계산식 (구성비율) -> 각 지역별 매출 비중으로 보기 위해 테이블 계산을 옆으로

수익을 낸 주문과 손실을 낸 주문을 파악해야 함 -> 주문별로 수익을 냈는지/못냈는지 -> order id 별로 FIXED

 

[Profitable order]

{FIXED [Order ID] : SUM([Profit]) > 0}

True or False 로 결과값이 나옴

 

현재 VLOD는 Region

현재 VLOD와 상관없는 새로운 차원인 Order ID를 가져와서 Order ID 별로 무언가를 계산할 수 있다 !

 

FIXED LOD는 언제 사용?

1. 전체 데이터셋 범위에서 집계값을 잡을 때

 

ex) 데이터셋 전체 범위에서 Sales의 합계를 잡고싶은 경우

[Sales-total]

{SUM(Sales)}

아무리 VLOD를 깊게 해도 전체 Sales의 합이 표현됨

어떤 차원에 의해서도 쪼개지지 못함

 

2. 날짜 필드를 활용할 때 (최근 3개월, 올해, 지난주 등)

[Recent Year]

{MAX(YEAR([Order Date]))}

[Last Year]

[Recent Year] - 1

 

3. 필터의 영향을 받지 않는 값을 만들어야 할 때 

Tableau의 Order of Operation에 따라서

FIXED는 차원필터의 영향을 받지 않음

차원필터를 컨텍스트필터로 올리면 영향을 받음