LITTLE BY LITTLE

[15] SQL로 분석하고 Tableau로 시각화하자 - 기본 함수 본문

시각화/SQL로 분석하고 Tableau로 시각화하자

[15] SQL로 분석하고 Tableau로 시각화하자 - 기본 함수

위나 2022. 7. 25. 10:09

기본 함수

기본함수는 데이터 시각화에 필요한 Tableau에 내장된 함수이며, 숫자/문자/날짜/유형 변환/논리/집계/테이블 계산 총 7가지가 자주 사용된다.

 

* 함수 종류

더보기
  1. ABS() : 절댓값 반환
  2. MAX() MIN()
  3. ZN() : NULL이면 0을 반환하고,아니면 괄호 안의 식을 반환
  4. ROUND()
  5. LEFT/RIGHT() : 왼/오른쪽부터 지정한 수(n)만큼 문자 반환
  6. LEN() 문자수 반환
  7. LOWER/UPPER() : 소/대문자 반환
  8. REPLACE() : 부분문자열 반환 ex. replace("abc","c","z") = abz
  9. CONTAINS : 부분문자열 포함되어있으면 true 반환
  10. SPLIT() : 구분 기호 뒤에 오는 조건과 반대 ex. split("a-b-c","-",2) = true
  11. DATEADD() : 날짜 부분 기준, 지정된 숫자만큼 증분 반환 ex. dateadd('month',2,#2021-04-12#) = 2021-06-12
  12. DATEDIFF() : 날짜 부분 기준, 두 날짜 차이 반환 
  13. DATENAME() : 날짜 부분 기준, 문자열 반환
  14. DATEPART() : 날짜 부분 기준, 숫자열 반환
  15. YEAR / QUARTER / MONTH / WEEK / DAY() : 연도 / 분기 / 월 / 주 / 일 반환
  16. TODAY() 
  17. NOW()
  18. MAX() : 최근일자 / MIN() : 최초일자
  19. DATE() 
  20. DATETIME() : 날짜 및 시간 반환
  21. FLOAT() : 실수 값 반환
  22. INT() : 정수 반환
  23. STR() : 문자 반환 
  24. IF() THEN ~ ELSEIF() THEN ~ ELSE END
  25. IFNULL(식1,식2) : NULL이면 식2를 반환, 아니면 식1을 반환 ex. IFNULL([매출액],0)
  26. ISNULL() : 올바른 데이터가 포함되지 않으면 TRUE 반환
  27. ATTR() : 단일 값이 아니면 별표(*) 반환
  28. COUNT()
  29. COUNTD() : 고유 건수 반환
  30. SUM, AVG, MAX, MIN, STDEV, VAR()
  31. INDEX() 
  32. RANK() : 동일한 값에 대해 동일한 순위 반환 ex. 1위,2위,2위,4위...
  33. RANK_DENSE() : 동일한 값에 대해 동일한 순위 반환 ex. 1위,2위,2위,3위...
  34. RANK_MODI-FIED() : 동일한 값에 대해 동일한 순위 반환 ex. 1위,3위,3위,4위...
  35. RANK_UNIQUE() : 동일한 값에 대해 고유한 순위 반환  ex. 1위,2위,3위,4위...
  36. RUNNING_AVG() : 누적 평균값
  37. RUNNING_MAX() / MIN() : 누적 최고/최솟값
  38. RUNNING_SUM() : 누적 합계값
  39. RUNNING_COUNT : 누적 건수
  40. TOTAL() : 전체 합계

1. 전년 대비 매출액 성장률

  • SUM / IF / YEAR 함수를 통하여 [전년 대비 매출액 성장률] 필드를 생성해보자.
  • (▼)계산된 필드 만들기 - SUM(IF YEAR([Order Date]) = 2021 THEN [매출액] END) / SUM(IF YEAR([Order Date]) = 2020 THEN [매출액] END) -1 → 전년대비 매출액의 합계 = 올해 매출액 합계 / 작년 매출액 합계
  • 생성된 필드 우클릭 - 기본 속성 → 숫자 형식 → 백분율 → 소수 자릿수(1)
  • 행에 [Brand] 필드 드래그
  • 마크카드 - 텍스트에 [전년 대비 매출액 성장률] 필드 드래그

전년 대비 매출액 성장률 테이블

2. 인당 구매금액

  • 계산된 필드를 활용해 브랜드(Brand)별 인당 구매금액 텍스트 테이블 생성해보자.
  • (▼)계산된 필드 만들기 - SUM / COUNTD[고유값count] 함수를 통해, 인당 구매금액 구하기  - SUM([매출액]) / COUNTD([Mem_No]) 인당 구매금액 = 매출액 합계 / 사람 수(중복 없이)

* COUNTD는 고유건수 반환 = SQL에서의 COUNT(DISTINCT)와 동일

  • 행에 [Brand] 필드 드래그
  • 마크 카드(텍스트)에 [인당 구매금액] 필드 드래그

3. 모델별 매출액 순위

  • RANK_UNIQUE / SUM 함수를 통해, [매출액 순위]필드를 생성하자.
  • (▼)계산된 필드 만들기 - RANK_UNIQUE(SUM([매출액]) → 매출액 합계의 순위 반환

모델별 매출액 순위


4. LOD 함수 (Level of Detail함수, Fixed vs Include vs Exclude)

* 기본 문법은 {LOD 함수 : 집계함수([측정값])}

Fixed 함수 : 지정된 차원을 기준

Include 함수 : 지정된 차원 + 뷰 차원 기준

Exclude 함수 : 지정된 차원이 뷰에 존재하는 경우, 제외


1. Fixed 함수 : 지정된 차원을 기준으로 측정값 집계

ex. {Fixed [Brand] : SUM([매출액])}

 

1-1. Fixed를 활용한 매출액 합계가 계산된 필드를 생성하자.

  • (▼)계산된 필드 만들기 - FIXED / SUM 함수를 통하여 [Fixed 매출액 합계]가 계산된 필드를 생성한다.
  • {FIXED : SUM([매출액])}
  • 행에 [Brand] 필드를 드래그한다.
  • 마크 카드 - 텍스트에 [Fixed 매출액 합계] 필드를 드래그한다.

Fixed를 활용한 매출액 합계 - [Brand] 뷰 차원마다 동일한 전체 매출액 합계가 계산됨

1-2. FIXED/ SUM 함수를 이용하여 [Fixed 매출액 합계 by Brand] 필드를 생성하자.

  • (▼)계산된 필드 만들기 
  • { FIXED [Brand] : SUM([매출액]) }, 생성된 필드 더블클릭하기

Fixed 매출액 합계 by Brand

1-1과 1-2비교 ( + by adding [Gender] )

** [Fixed 매출액 합계 by Brand]는 행에 [Gender]을 추가하여도, 지정된 차원이 아니라서 Gender 뷰 차원마다의 세분화된 매출액 합계가 계산되지 않는다.(남녀 매출액 값에 차이가 없음)


2. include 함수 : 지정된 차원 + 뷰 차원 기준 측정값 집계

ex. {Include [Mem_no] : SUM([매출액])}

 

Include를 활용한 회원번호별 매출액 합계가 계산된 필드를 생성하자.

  • INCLUDE / SUM 함수를 통하여 [Include 매출액 합계 by Mem no] 계산된 필드를 생성한다.
  • { INCLUDE [Mem no] : SUM([매출액]) }
  • 행에 [Brand] 필드 드래그
  • 마크 카드(텍스트)에 [Include 매출액 합계 by Mem no] 필드 드래그 : 측정값 → 평균

지정된 차원인 [Mem_no] 기준으로 매출액 합계가 계산되고, [Brand] 뷰 차원마다 세분화된 매출액 평균이 계산되었다. 그냥 매출액 합계와 값이 다르다.


3. Exclude 함수 : 지정된 차원이 뷰에 존재하는 경우, 제외하여 측정값 집계

ex. Exclude [Brand] : SUM([매출액])}

 

3-1. Exclude를 활용한 회원번호별 매출액 합계가 계산된 필드를 생성해보자.

  • (▼)계산된 필드 만들기 - EXCLUDE / SUM 함수를 이용
  • { EXCLUDE [Brand] : SUM([매출액]) }
  • 마크카드 - 텍스트에 생성된 필드 드래그

지정된 차원 [Brand]를 모두 제외하여 매출액 합계가 계산되었다.

3-2. [Brand] 필드 값 일부가 뷰에 존재하지 않을 경우

  • [Brand] 필드를 필터에 드래그하고, 우클릭하여 '필터 표시'를 클릭한다.
  • 사이드바 상단의 분석 탭을 클릭한다.
  • 총계를 뷰에 드래그하여 열 총합계에 넣는다.

분석 탭의 총계를 뷰에 넣는 과정

  • [매출액]을 더블클릭한다.
  • [Brand] 필드 값 'benz'를 필터로 제거한다.

[매출액]과 [Exclude 매출액 합계 by Brand ] 총 합계가 다른 것을 볼 수 있다.

 

Comments