[Sql분석] Inventory Dashboard

김보림·2024년 7월 26일
0

SQL 분석

목록 보기
31/33

데이터 전처리 및 지표생성


  1. SKU Count : SKU Unique 개수 - SKU_number의 Distinctcount
  2. Invent Unit : 재고 보유량 - ItemCount의 합
  3. Unit per SKU : 한 SKU당 Unit 수
  • A: 10개 / B: 4개 -> SKU count 2개, Unit 14개
  • Unit per SKU = 14 /2
  1. Invent Cost : SUM(Unit 수 * PriceReg)
  2. Invent Cost per Unit : Invent Cost / Invent Unit
  3. Month of Coverage : 우리가 가지고 있는 재고로 커버할 수 있는 달
    Invent Unit / 월 평균 판매량
  • 위와 같은 주요지표를 먼저 생성한 뒤 대시보드 작성해보자

  • 측정값을 넣어줄 새테이블 생성
    Calculation = {blank()} 식을 넣어주면 된다
    (이유는 알 수 없지만 한번 저장후 나갔다 들어와야 저 테이블안에 새측정값이 작성된다)

  • 새 측정값 선택

1. Sku Count = DISTINCTCOUNT(Inventory[SKU_number])
- SKU_number의 고유한 개수

2. Invent Unit = SUM(Inventory[ItemCount])
- 재고보유량

3. Unit per Sku = DIVIDE([2. Invent Unit],[1. Sku Count])
- sku당 재고개수
- DIVIDE를 이용하면 나중에 식이 복잡해질 때 구문하기가 편해짐

4. Invent Cost = SUMX(Inventory, Inventory[ItemCount] * Inventory[PriceReg])
- 재고비용
- SUMX()는 행별로 계산한다음 합산을 구해줌 (가로로 계산)
- SUM()을 사용하면 열로 쭉 계산한 후 합산을 구한다 (세로로 계산)

5. Invent Cost per Unit = DIVIDE([4. Invent Cost], [2. Invent Unit])
- 한 Unit 당 재고 가격

6. Month of Coverage = DIVIDE([2. Invent Unit], DIVIDE(sum(Inventory[SoldCount]),6) )
- 한달을 기준으로 보유재고로 판매할 수 있는 개월 수

  • 앞서서 SQL에서 File_Type 과 Soldflag를 가지고 만들었던
    Acive / Semi-Active / Historical을 조건열로 생성해주기

  • 테이블 변환 탭으로 가기

  • 열추가 -> 조건열 추가

  • Case When절과 유사하다

  • 중복된 항목이 없다는걸 우리는 전처리를 통해 알고 있지만
    중복된 항목을 처리하는 법이 powerbi에도 있다

  • 여전히 테이블 변환 탭에서 양쪽 끝열을 shift를 누르고 선택하면 전체선택이 된다

  • 우클릭 중복항목된 제거

  • 변환탭 > 데이터 형식 변환 을 누르면 툴에서 알아서 형식을 인식하고 지정해줌

그래프


  • 각 지표를 볼 수 있는 카드 (신규) 차트 생성
  • Inventory Type별 SKU count 와 Inventory Type별 Inven Cost를 볼 수 있는 도넛차트 생성
  • Unit per Sku 와Invent Cost per Unit을 알 수 있는 꺽은선 막태그래프 생성
  • 두개의 값이 너무 큰 차이없이 비슷한 수준의 값이라면
    보조축을 없애 값의 왜곡을 피할 수 있다

  • 누적형 영역차트 와 영역형 차트의 차이

    • 누적형 영역차트는 각 범례의 비중과 총계를 보고싶을 때
    • 영역형 차트는 같은 영점을 가지고 각각의 범례를 독립적으로 보고 싶을 때

SWITCH & SELECTEDVALUE


  • 영역차트를 생성할 것인데 아까 측정값으로 만들어준 주요지표에 따라 변경되는 그래프로 만들고 싶다

  • 이 때 SWITCH와 SELECTEDVALUE를 활용하면 된다

  • 우선 그래프가 변경될 수 있는 버튼 역할에 넣어줄 값의 테이블을 새로 생성

  • 데이터 입력탭 선택

  • 순서를 정해줄 수도 있으니 Index열도 생성

  • 테이블 보기 -> D_indicator 선택 -> 새측정값 선택

  • SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

  • SELECTEDVALUE(<columnName>[, <alternateResult>])

  • D_indicator의 컬럼의 이름을 그대로 작성해주어야 한다

  • 큰따옴표로 감싸줘야함

  • 슬라이서 생성 -> 필드에 D_indicator 테이블에 있는 Indicator 넣어주기

  • 스타일 옵션에서 타일 로 설정해준 뒤 선택 -> 단일선택

  • 영역형 차트의 Y축 값을 Switch_Indicator로 넣어주기
  • 슬라이서를 선택해줄 때마다 차트가 그에 맞게 변경됨

SKU Grade 테이블 및 관계설정


  • 데이터변환 탭 -> 새원본 -> 추가 -> mysql

  • 서버 : localhost , 데이터베이스 : inventory
    고급 -> select * from sku_grade

  • 불러온 테이블을 inventory 테이블과 연결시키기 위한 조인키로 사용할 열 생성

  • Sku_number는 같은 숫자로 SoldFlag가 두개씩 있는 경우가 있어서
    다대다로 연결되어 불가능

  • 열추가 -> 사용자지정열

  • inventory 테이블에도 동일하게 조인키로 쓸 열을 추가해주는데
    이때는 File_Type_2가 아니라 Inventory_Type인것 잊지말것!

  • 그럼 둘다 아래와 같은 열이 추가된다

  • 모델보기로 들어가 보면 자동으로 join_key로 연결되어 있음
  • 그럼 이제 등급별 슬라이서를 생성해서 등급별로도 차트를 볼 수 있다

  • 필드에 sku_grade 테이블에 Sku_grade 넣어주면 된다

페이지 이동단추


  • 지표 설명을 보고 싶은 사람들이 있을 수 있으니
    지표설명을 적어둔 페이지로 이동할 수 있는 단추를 생성
  • 여러종류가 있고 그중 비어있음을 선택해 보겠다

  • 텍스트에서 단추에 글씨를 적어줄 수 있다

  • 가리킬 때 버튼의 색이 바뀌게 해서 선택한 느낌을 줄 수도 있다

  • 작업에서 이동할 페이지를 선택해 줄 수 있음
  • 컨트롤키를 누르고 선택하면 지표설명 페이지로 넘어감
profile
볼로그

0개의 댓글