필드 : 데이터 원본에 존재하는 필드를 활용해 새로운 필드를 만듬
연산자 : 함수, 필드, 매개 변수 등을 사칙연산으로 새로운 값을 만드는 것. 데이터 원본에 있는 차원, 측정값을 사용하지 않고도 상수값을 직접 입력하여 새로운 값을 만들 수 있음.
논리 함수 : 데이터 원본의 필드와 태블로 내장함수를 활용하여 데이터 형태를 바꾸거나 원하는 값을 계산하여 가지고 올 때 사용. 새로운 계산식을 적용하기 위해 기존 데이터 원본 필드에 유형 및 역할을 결정하는데 영향을 줌
매개 변수 : 상수 값을 동적인 값으로 변경해주는 변수. 최근 한 달, 최근 일 년 등과 같이 필요에 따라 범위를 다르게 둬서 볼 때 사용. 매개변수는 단독으로 사용할 수 없으며, 계산식이나 참조선과 같이 사용되어야 함.
1) 범위형 : 최솟값, 최댓값 사이 범위를 정하여 특정 간격으로 변수를 움직일 수 있음
2) 목록형 : 목록에서 변수 선택가능
3) 날짜형 : 날짜 선택 가능
4) 복합 매개 변수 : 여러 매개변수 사용
계산된 필드 사용 예시
-> COUNTD() : '주문건수' 등을 만드는 함수. 중복없이 count함.
-> '주문건당 수량' : 'SUM([수량])/[주문건수]'로 계산
-> IF SUM([매출]) >= 200000000 THEN '2억 이상 매출' ELSE '2억 미만 매출' END
-> IIF(SUM([매출]) >= 200000000, '2억 이상 매출', '2억 미만 매출') : 위와 같은 결과
-> 계산된 필드에 'SUM([매출]) >= 200000000'만 넣어 만들면, TF에 따라 구분해줄 수 있음.
-> 날짜형 매개변수와 '[주문 일자]>=[From] AND [주문 일자]<=[To]' 계산된 필드 사용 -> 필터에 넣기
-> 'CASE [차원 선택] WHEN 1 THEN [제품 대분류] WHEN 2 THEN [제품 중분류] END'
1) 테이블 계산 함수 (PRIMARY 함수)
: 함수 내에 다른 함수가 포함된 함수
: 괄호 안에는 무조건 함수를 이용해 집계된 값이 들어있어야 함
RUNNING (RUNNING_SUM, RUNNING_AVG, RUNNING_COUNT, RUNNING_MAX, RUNNING_MIN)
-> RUNNING_SUM(=누계): 첫 번째 행에서 현재 행까지의 누적 합계를 반환
ex) RUNNING_SUM(SUM([매출]))
-> RUNNING_AVG(=누계평균) : 이동평균은 평균을 내는 범위가 달라지지만, 누계평균은 첫번째 값부터 현재값까지 모든값의 평균임
TOTAL : SUM은 해당 레벨의 차원에 맞춰 합계를 구하지만, TOTAL은 차원에 영향을 받지 않고, 모든 값의 총합을 나타냄
2) 문자열 함수
3) 날짜 함수
IF DATEPART('weekday', [주문 일자]) = 1 THEN 'SUN'
ELSEIF DATEPART('weekday', [주문 일자]) = 2 THEN 'MON'
ELSEIF DATEPART('weekday', [주문 일자]) = 3 THEN 'TUE'
ELSEIF DATEPART('weekday', [주문 일자]) = 4 THEN 'WED'
ELSEIF DATEPART('weekday', [주문 일자]) = 5 THEN 'THU'
ELSEIF DATEPART('weekday', [주문 일자]) = 6 THEN 'FRI'
ELSEIF DATEPART('weekday', [주문 일자]) = 7 THEN 'SAT'
END
DATETRUNC : 지정한 날짜를 특정 기준으로 잘라낸 후, 새 날짜를 반환함
DATEPART('day', [주문 일자]) vs DATETRUNC('day', [주문 일자])
-> DATEPART는 DAY레벨에서 주문일자를 잘라줌(연,분기,월 무시)
-> DATETRUNC는 1월1일, 2월1일 순으로 날짜가 잘림
-> 특정부분의 값만 반환 vs 날짜형태를 유지한채 값을 반환
DATEDIFF('day', [주문 일자], [배송 일자]) : 날짜 간의 차이를 반환
<월, 분기, 년 시작일로부터 특정일까지의 합계 매출 구하기>
1) MTD(MonthToDay)
DATEDIFF('month', [주문 일자], [Date]) = 0
AND
DATEDIFF('day', [주문 일자], [Date]) >= 0
-> 매개변수[Date]와 같은 달 이전 날짜까지만 보여줌
2) QTD(QuarterToDay)
DATEDIFF('quarter', [주문 일자], [Date]) = 0
AND
DATEDIFF('day', [주문 일자], [Date]) >= 0
-> 매개변수[Date]와 같은 분기 이전 날짜까지만 보여줌
3) YTD(YearToDay)
DATEDIFF('year', [주문 일자], [Date]) = 0
AND
DATEDIFF('day', [주문 일자], [Date]) >= 0
-> 매개변수[Date]와 같은 년도 이전 날짜까지만 보여줌
세부 수준식(Level of Detail)
ex) {Include[차원1],[차원2] : SUM([측정값])}
INCLUDE : 화면에 포함되지 않은 특정 차원을 '포함'하여 결과를 계산
{ INCLUDE [제품 중분류] : SUM([매출]) }
EXCLUDE : 화면에 포함된 특정 차원을 '제외'하여 결과를 계산
{ EXCLUDE [제품 중분류] : SUM([매출]) }
-> INCLUDE, EXCLUDE는 FIXED로 대체 가능함
FIXED : 화면에 상관없이 특정 차원을 '고정'하여 결과를 계산
{ FIXED [제품 중분류] : SUM([매출]) } = { INCLUDE [제품 중분류] : SUM([매출]) }
{ FIXED [제품 대분류] : SUM([매출]) } = { EXCLUDE [제품 중분류] : SUM([매출]) }
{ FIXED [고객명] : MIN([주문 일자]) } : 고객별 최초 주문일자 구하기
<제로베이스 데이터 취업 스쿨>