Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이터 핸들링
- 그룹 연산
- 데이터 증식
- 3기가 마지막이라니..!
- splitlines
- Growth hacking
- 그로스 마케팅
- XGBoost
- 분석 패널
- sql
- python
- 인프런
- 리프 중심 트리 분할
- 캐글 산탄데르 고객 만족 예측
- 캐글 신용카드 사기 검출
- pmdarima
- WITH CUBE
- tableau
- 컨브넷
- 데이터 정합성
- 부트 스트래핑
- 로그 변환
- 그로스 해킹
- WITH ROLLUP
- lightgbm
- ARIMA
- 스태킹 앙상블
- 마케팅 보다는 취준 강연 같다(?)
- ImageDateGenerator
- DENSE_RANK()
Archives
- Today
- Total
LITTLE BY LITTLE
[15] SQL로 분석하고 Tableau로 시각화하자 - 기본 함수 본문
기본 함수
기본함수는 데이터 시각화에 필요한 Tableau에 내장된 함수이며, 숫자/문자/날짜/유형 변환/논리/집계/테이블 계산 총 7가지가 자주 사용된다.
* 함수 종류
더보기
- ABS() : 절댓값 반환
- MAX() MIN()
- ZN() : NULL이면 0을 반환하고,아니면 괄호 안의 식을 반환
- ROUND()
- LEFT/RIGHT() : 왼/오른쪽부터 지정한 수(n)만큼 문자 반환
- LEN() 문자수 반환
- LOWER/UPPER() : 소/대문자 반환
- REPLACE() : 부분문자열 반환 ex. replace("abc","c","z") = abz
- CONTAINS : 부분문자열 포함되어있으면 true 반환
- SPLIT() : 구분 기호 뒤에 오는 조건과 반대 ex. split("a-b-c","-",2) = true
- DATEADD() : 날짜 부분 기준, 지정된 숫자만큼 증분 반환 ex. dateadd('month',2,#2021-04-12#) = 2021-06-12
- DATEDIFF() : 날짜 부분 기준, 두 날짜 차이 반환
- DATENAME() : 날짜 부분 기준, 문자열 반환
- DATEPART() : 날짜 부분 기준, 숫자열 반환
- YEAR / QUARTER / MONTH / WEEK / DAY() : 연도 / 분기 / 월 / 주 / 일 반환
- TODAY()
- NOW()
- MAX() : 최근일자 / MIN() : 최초일자
- DATE()
- DATETIME() : 날짜 및 시간 반환
- FLOAT() : 실수 값 반환
- INT() : 정수 반환
- STR() : 문자 반환
- IF() THEN ~ ELSEIF() THEN ~ ELSE END
- IFNULL(식1,식2) : NULL이면 식2를 반환, 아니면 식1을 반환 ex. IFNULL([매출액],0)
- ISNULL() : 올바른 데이터가 포함되지 않으면 TRUE 반환
- ATTR() : 단일 값이 아니면 별표(*) 반환
- COUNT()
- COUNTD() : 고유 건수 반환
- SUM, AVG, MAX, MIN, STDEV, VAR()
- INDEX()
- RANK() : 동일한 값에 대해 동일한 순위 반환 ex. 1위,2위,2위,4위...
- RANK_DENSE() : 동일한 값에 대해 동일한 순위 반환 ex. 1위,2위,2위,3위...
- RANK_MODI-FIED() : 동일한 값에 대해 동일한 순위 반환 ex. 1위,3위,3위,4위...
- RANK_UNIQUE() : 동일한 값에 대해 고유한 순위 반환 ex. 1위,2위,3위,4위...
- RUNNING_AVG() : 누적 평균값
- RUNNING_MAX() / MIN() : 누적 최고/최솟값
- RUNNING_SUM() : 누적 합계값
- RUNNING_COUNT : 누적 건수
- 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 매출액 합계] 필드를 드래그한다.
1-2. FIXED/ SUM 함수를 이용하여 [Fixed 매출액 합계 by Brand] 필드를 생성하자.
- (▼)계산된 필드 만들기
- { FIXED [Brand] : SUM([매출액]) }, 생성된 필드 더블클릭하기
1-1과 1-2비교 ( + by adding [Gender] )
2. include 함수 : 지정된 차원 + 뷰 차원 기준 측정값 집계
ex. {Include [Mem_no] : SUM([매출액])}
Include를 활용한 회원번호별 매출액 합계가 계산된 필드를 생성하자.
- INCLUDE / SUM 함수를 통하여 [Include 매출액 합계 by Mem no] 계산된 필드를 생성한다.
- { INCLUDE [Mem no] : SUM([매출액]) }
- 행에 [Brand] 필드 드래그
- 마크 카드(텍스트)에 [Include 매출액 합계 by Mem no] 필드 드래그 : 측정값 → 평균
3. Exclude 함수 : 지정된 차원이 뷰에 존재하는 경우, 제외하여 측정값 집계
ex. Exclude [Brand] : SUM([매출액])}
3-1. Exclude를 활용한 회원번호별 매출액 합계가 계산된 필드를 생성해보자.
- (▼)계산된 필드 만들기 - EXCLUDE / SUM 함수를 이용
- { EXCLUDE [Brand] : SUM([매출액]) }
- 마크카드 - 텍스트에 생성된 필드 드래그
3-2. [Brand] 필드 값 일부가 뷰에 존재하지 않을 경우
- [Brand] 필드를 필터에 드래그하고, 우클릭하여 '필터 표시'를 클릭한다.
- 사이드바 상단의 분석 탭을 클릭한다.
- 총계를 뷰에 드래그하여 열 총합계에 넣는다.
- [매출액]을 더블클릭한다.
- [Brand] 필드 값 'benz'를 필터로 제거한다.
'시각화 > SQL로 분석하고 Tableau로 시각화하자' 카테고리의 다른 글
[17,끝] SQL로 분석하고 Tableau로 시각화하자 - 지역별 매장 분석, 카테고리 분석, 워드 클라우드 (0) | 2022.07.26 |
---|---|
[16] SQL로 분석하고 Tableau로 시각화하자 - 매개변수, 대시보드, RFM 고객 세분화 분석 (0) | 2022.07.25 |
[14] SQL로 분석하고 Tableau로 시각화하자 - 퀵 테이블 계산, 개별/단일/이중 축 (0) | 2022.07.23 |
[13] SQL로 분석하고 Tableau로 시각화하자 - Tableau 속 SQL (0) | 2022.07.22 |
[12] SQL로 분석하고 Tableau로 시각화하자 - 분석 패널 (0) | 2022.07.22 |
Comments