IT이야기

SQLite 실무 활용: 판매 데이터 분석 SQL 정리

지파지파 2025. 6. 18. 00:32
반응형

SQLite 실무 활용: 판매 데이터 분석 SQL 정리

업무 중 판매 데이터 테이블을 분석해야 하는 일이 생겼습니다. 특히 진행단계, 지역, 상품유형, 카테고리, 브랜드, 할인여부 등 다양한 필드가 포함된 테이블을 요약하고, 이를 보고용 테이블 형태로 출력해야 했습니다.

이번 글에서는 SQLite를 활용하여 이 데이터를 어떻게 효율적으로 그룹핑, 요약, 피벗할 수 있었는지를 정리해봅니다.

1. 데이터 구조 요약

테이블명: 판매현황_2024

주요 필드:

  • 기준 필드: 진행단계, 지역코드, 지역명, 상품유형, 유형명, 카테고리, 카테고리명, 브랜드, 브랜드명, 할인여부
  • 요약 필드: 매출액, 순이익

2. 기본 요약 쿼리 – 전체 데이터를 기준으로 매출액, 순이익 합계

SELECT 
    진행단계, 
    지역코드, 
    지역명, 
    할인여부, 
    상품유형, 
    유형명, 
    카테고리, 
    카테고리명, 
    브랜드, 
    브랜드명,
    SUM(매출액) AS 합계_매출액,
    SUM(순이익) AS 합계_순이익
FROM 판매현황_2024
GROUP BY 진행단계, 지역코드, 지역명, 할인여부, 상품유형, 유형명, 카테고리, 카테고리명, 브랜드, 브랜드명
ORDER BY 진행단계, 지역코드, 카테고리, 브랜드;

 

✔ 이 쿼리는 필터 없이 전체 판매 데이터를 기준으로 요약합니다.
✔ 실무에서 보고용 자료로 활용하기 좋으며, GROUP BY 필드를 상황에 맞게 조정할 수 있습니다.

3. 피벗 형태로 보고 싶을 때 (예: 할인여부를 열로, 매출액 합계 보기)

SELECT 
    카테고리,
    카테고리명,
    브랜드,
    브랜드명,
    SUM(CASE WHEN 할인여부 = 'N' THEN 매출액 ELSE 0 END) AS 정가판매,
    SUM(CASE WHEN 할인여부 = 'Y' THEN 매출액 ELSE 0 END) AS 할인판매,
    SUM(매출액) AS 총매출액
FROM 판매현황_2024
GROUP BY 카테고리, 카테고리명, 브랜드, 브랜드명
ORDER BY 카테고리, 브랜드;

 

✔ 엑셀의 피벗처럼 열을 할인여부로 나누고 싶을 때 사용하는 방식입니다.
✔ SQLite는 PIVOT 키워드가 없기 때문에 CASE WHEN을 활용해 직접 구현해야 합니다.

4. 특정 조건(예: 지역 = 서울지점)만 필터링하고 싶은 경우

WHERE 지역코드 = 'SEL001' AND 지역명 = '서울지점'

 

✔ 위 조건을 기존 쿼리에 붙이면, 해당 지점의 데이터만 요약 가능합니다.
✔ 실무에서는 보고 단위(지점, 부서 등)에 따라 SQL 조건을 쉽게 바꿀 수 있어야 합니다.

마무리 정리

목적 SQL 접근 방식
기준 필드별 요약 GROUP BY + SUM()
조건 필터링 WHERE
피벗 형태 요약 CASE WHEN + SUM()
정렬 보기 좋게 ORDER BY 사용

💡 실무 팁

  • Access나 SQLite에서 #######로 숫자가 잘릴 경우 → 열 너비 조정 필요
  • 수치 비교를 위한 정확한 단위(천, 백만, 억 단위 등)는 후처리 시 고려
  • 반복되는 SQL은 템플릿으로 만들어 두면 분석 속도 향상
반응형