[SQL 분석][Ch5] 재고 분석을 통한 물류 기획 관리

김지현·2024년 8월 3일

SQL 분석

목록 보기
33/40

사용할 데이터셋
Historical Sales and Active Inventory (출처 : kaggle)

  • 과거 판매 데이터와 현재 잘 팔리는 활성 재고가 포함된 데이터

컬럼 정의

- Order : 주문번호
- File_Type : Historical / Active
- SKU_number : 상품 고유번호
- SoldFlag : 지난 6개월간 판매된 적이 있으면 1, 없으면 0
- SoldCount : 판매량 (지난 6개월동안의 판매량이라고 가정)
- ItemCount : 재고량
- New_Release_Flag : 미래에 동일한 sku가 재입고된 적이 있으면 1, 없으면 0
- ReleaseYear : 출시년도 (입고년도라고 가정)
- PriceReg : 정상 판매가 / LowNetPrice : 고객 최종 실 구매가

분석 목표 : 악성 재고 현황 파악 및 최소화 플랜 수립


재고관리 주요 지표

  • 재고(Inventory) = 입고량(Inbound) - 판매량(Outbound)
  • 권장 판매가(List Price)
  • 실 판매가(Net Price) : 할인 등을 적용한 최종 구매 가격
  • SKU(Stock Keeping Unit) : 재고 관리를 위한 최소 단위 코드
  • Unit Quantity : 상품 개수
  • Unit per SKU : SKU 1종당 상품의 개수
  • DOC(Day of Coverage) = 재고량 / 하루 판매량 : 가진 재고로 며칠동안 판매가 가능한가
  • Low DOC : 재고 전환률이 높음
  • High DOC : 재고 전환율이 낮음


데이터 탐색

DBeaver 실행 - Database 생성(inventory) - 데이터 가져온 후 sql 편집기 실행

스키마를 'inventory'로 지정해주면 FROM 절 'inventory.inventory'에서 앞의 invertory 생략 가능 (같이 써도 결과는 동일)

중복값 확인 (기존 count(*) 결과와 distinct 행 수가 같은지((198,917건으로 동일))

SELECT count(*)
FROM (
		SELECT DISTINCT *
		FROM inventory i
		) i2;

재고 활성화 확인
→ Active는 활성 재고라 soldflag가 null값, historical이 0과 1로 나뉨

SELECT DISTINCT File_Type, SoldFlag
FROM inventory i;

ReleaseYear(입고년도) 확인 > 0인 컬럼 존재

SELECT *
FROM inventory i
WHERE SKU_number = 294185;

판매가격 최대, 최소, 평균 확인
→ 최소값이 0인 데이터 有 > LowNetPrice 참고해볼 수 있겠다

SELECT min(PriceReg), max(PriceReg), avg(PriceReg)
FROM inventory i ;

0개의 댓글