MILVUS

태블로 프리미어 파트너사 밀버스

밀버스와 함께 해봐요!

Data SCHOOL

  • 초급
  • 교육

태블로 '계산된 필드' 활용하기

블로그 저자 Herny
Henry
CRM컨설팅/이사, (주)밀버스

태블로를 사용하면서 데이터 원본에 분석이 필요한 필드가 포함되어 있지 않은 경우가 많습니다.
예를 들어, 데이터 원본에 Sales 필드와 Profit 필드는 있지만 Profit Ratio 필드가 없는 경우
기존에 있는 Sales 필드와 Profit 필드를 사용해서 'Profit Ratio' 라는 계산된 필드를 만들 수 있습니다.

계산된 필드에 내장되어 있는 PRIMARY함수는 함수 내에 다른 함수를 포함하는 함수입니다.
PRIMARY함수 중 대표적으로 많이 사용하는 계산된 필드 다섯가지를 소개해드리겠습니다.

· RUNNING_SUM()
· RUNNING_AVG()
· TOTAL()
· LOOKUP()
· WINDOW_AVG()

RUNNING() 함수는 파티션의 값을 누적으로 집계합니다.
값을 합산하거나 값을 평균화하거나 모든 값을 가장 낮은 또는 가장 높은 값으로 대체하여 이를 수행할 수 있습니다.
RUNNING() 함수에는 RUNNING_SUM()RUNNING_AVG(), RUNNING_MAX() 등 다양한 함수들이 있습니다.
그 중 RUNNING_SUM()RUNNING_AVG() 함수에 대해 알아보겠습니다.

RUNNING_SUM(expression)

파티션에 있는 첫 번째 행에서 현재 행까지 주어진 식의 누계합계를 반환하는 함수입니다.

계산된 필드에서 아래와 같이 수식을 작성하여 'RUNING_SUM' 필드를 생성합니다.
열 패널에 ORDER_DATE(년), 행 패널에 계산된 필드로 만든 'RUNING_SUM' 필드를 올리면
연도별로 Sales의 누계 합을 그래프로 나타낼 수 있습니다.
아래에 그려진 그래프와 같이 연도별로 매출의 누계 합이 점점 증가하는 것을 볼 수 있습니다.

* 퀵테이블 계산에서 누계를 클릭하시면 아래와 동일한 결과를 얻을 수 있습니다.

퀵테이블 계산에서 누계 클릭 시 결과 첫번째

퀵테이블 계산에서 누계 클릭 시 결과 두번째

RUNNING_AVG(expression)

파티션에 있는 첫 번째 행에서 현재 행까지 주어진 식의 누계 평균을 반환하는 함수입니다.

계산된 필드에서 아래와 같이 수식을 작성하여 'RUNNING_AVG' 필드를 생성합니다.
누계 평균의 변화를 더 자세히 보기위해 패널에 ORDER DATE(년)를 '연/월' 형태로 변경하여 올리고
행 패널에 계산된 필드로 만든 'RUNNING_AVG' 필드를 올립니다.
아래와 같이 연/월별로 Sales의 누계 평균을 그래프로 나타낼 수 있습니다.
그려진 그래프를 보시면 '202012월'까지 Sales의 누계 평균 값이 62,113달러임을 알 수 있습니다.

퀵테이블 계산에서 누계 평균을 반환하는 함수 결과 첫번째

퀵테이블 계산에서 누계 평균을 반환하는 함수 결과 두번째

TOTAL(expression)

테이블 계산 파티션 내의 지정된 식에 대한 총계를 반환하는 함수입니다.

SUM() 함수는 측정값의 합계를 반환하는 반면, TOTAL() 함수는 파티션 안에 있는 지정된 식의 합계를 반환한다는
점에서 차이가 있습니다. TOTAL() 함수는 항상 SUM() 함수, AVG() 함수 등과 함께 사용되어야 합니다.

계산된 필드에서 아래와 같이 수식을 작성하여 'TOTAL 함수' 필드를 생성합니다.
행 패널에 Catagory 필드와 Sub_Catagory 필드를 올리고 계산된 필드로 만든 'TOTAL 함수' 필드를 더블 클릭합니다.
아래와 같이 전체 매출액의 합계가 테이블에 추가되는 것을 확인할 수 있습니다.

* 분석 탭에서 총계 안에 있는 '열 총합계 표시' 를 클릭하시면 동일한 결과를 얻을 수 있습니다.

테이블 계산 파티션 내의 지정된 식에 대한 총계를 반환하는 함수

테이블 계산 파티션 내의 지정된 식에 대한 총계를 반환하는 함수 실행 모습

TOTAL() 함수는 매출액이 전체에 몇 %를 차지하는 지를 알고 싶을 때 유용하게 사용됩니다.

계산된 필드에서 아래와 같은 수식을 작성하여 '매출액 %' 필드를 생성합니다.
위에서 만든 테이블에 '매출액 %' 필드를 더블클릭하여 추가하고 해당 필드의 서식을 백분율로 변경해줍니다.
아래 테이블을 보면 Sub_Catagory가 'bookcases'일 때 전체 매출액의 5%를 차지한다는 것을 알 수 있습니다.

LOOKUP(expression, [offset])

지정된 상대적 오프셋만큼 현재 행으로부터 떨어진 대상 행에서 주어진 식을 계산하여 그 값을 반환하는 함수입니다.

​대상 행을 결정할 수 없는 경우, 함수는 NULL을 반환하며 'FIRST() + n' 혹은 'LAST() - n'을 이용해서 대상을
파티션의 첫 번째 혹은 마지막 행에서부터 상대적 위치로 지정할 수 있습니다.

계산된 필드에서 현재 행으로부터 -1만큼 떨어진 대상 행 즉, 현재 행을 기준으로 그 전 행에서 Sales의 합계를 계산하는
'LOOKUP-1' 필드를 생성합니다.
열 패널에 ORDER_DATE(년)을, 행 패널에 Catagory 필드를 올리고 'LOOKUP-1' 필드와 Sales 필드를 더블 클릭합니다.
아래 만들어진 테이블을 보면 2018년을 기준으로 전년도(2017년)의 데이터가 없어 'LOOKUP-1' 필드 값이
비어 있는 것을 확인할 수 있으며 2019년 'LOOKUP-1' 필드 값은 2018년도의 매출인 것을 확인할 수 있습니다.

* LOOKUP() 함수는 전년도와의 매출액 차이를 보여주는 테이블을 만들 때 유용하게 사용됩니다.

LOOKUP 함수 실행 화면

LOOKUP 함수 실행 결과 화면

WINDOW_AVG(expression, [start, end])

WINDOW() 함수는 창내에서 해당식을 반환하는 함수입니다.

WINDOW()함수는 WINDOW_AVG(), WIDIOW_CORR(), WINDOW_COUNT() 등 다양한 함수가 있습니다.
그 중 WINDOW_AVG() 함수에 대해 알아보겠습니다.

창 내 식의 평균을 반환합니다. 창은 현재 행의 오프셋으로 정의됩니다. 파티션의 첫 번째 또는 마지막 행의
오프셋에 대해 'FIRST() + n' 및 'LAST() - n'을 사용합니다. 시작 및 끝을 생략하면 전체 파티션이 사용됩니다.

계산된 필드에서 현재 행을 기준으로 그 두 전의 행에서부터 그 다음 행까지 모든 Sales의 합계의 평균을 계산하는
'WINDOW 예제' 필드를 생성합니다.
아래 만들어진 테이블에서 SateAlabama인 경우, Alabama를 기준으로 그 두 전의 행에서부터 그 다음 행인
Arizona 까지 Sales의 합계의 평균 값이 27,396달러임을 확인할 수 있습니다 .

* 모든 분기의 수익의 평균과의 차이에 사용할 수 있습니다.

WINDOW 함수 실행 화면

WINDOW 함수 실행 결과 화면