metrics : 연도와 월별 성과 지표 및 직원별 성과 분석 SQL (BDA학회 SQL 문법 기초 연습반)

2024. 11. 13. 20:54 · 대외활동 및 인턴/빅데이터 분석 학회 BDA

 

연도와 월별 성과 지표를 계산하고, 직원별 성과 데이터를 분석할 것이다.


📊 1. 연도와 월별 성과 지표 계산 (월간 집계)

먼저, 연도와 월별로 비즈니스 성과를 집계하는 쿼리를 작성한다. 이를 위해 CTE(Common Table Expression)를 활용하여 데이터를 효율적으로 계산 및 구성한다.

쿼리 설명

  1. MonthlyMetrics CTE:
    • 주요 계산 항목:
      • 연도, 월
      • 총 주문 금액, 주문 수, 고유 고객 수, 총 상품 수, 고유 상품 수, 총 원가
    • 이를 통해 연도와 월별로 중요한 성과 지표를 요약한다.
  2. MonthlyMetricsWithLag CTE:
    • 이전 월의 총 주문 금액(LAG 함수 사용)을 추가로 계산한다.
    • 이를 기반으로 월간 성장률(전월비)을 계산한다.
  3. 최종 결과:
    • 연도(order_year), 월(order_month)을 기준으로 성과 지표를 확인할 수 있다.
    • 월별 성장률(month_over_month_change)로 월간 성과 변화를 쉽게 확인할 수 있다.

주요 코드

WITH MonthlyMetircs AS (
    SELECT 
        YEAR(o.orderdate) AS order_year, 
        MONTH(o.orderdate) AS order_month, 
        SUM(od.priceEach * od.quantityOrdered) AS total_order_amount, 
        COUNT(DISTINCT o.orderNumber) AS total_orders, 
        COUNT(DISTINCT o.customerNumber) AS unique_customers, 
        COUNT(od.productCode) AS prd_total, 
        COUNT(DISTINCT od.productCode) AS prd_dist_total, 
        SUM(od.quantityOrdered * p.buyPrice) AS total_cost 
    FROM orders AS o 
    JOIN orderdetails AS od 
        ON o.orderNumber = od.orderNumber 
    JOIN products AS p 
        ON p.productCode = od.productCode 
    GROUP BY YEAR(o.orderdate), MONTH(o.orderdate)
),
MonthlyMetricsWithLag AS (
    SELECT 
        *, 
        LAG(total_order_amount) OVER (ORDER BY order_year, order_month) AS prev_month_order_amount
    FROM MonthlyMetircs
)
SELECT 
    order_year, 
    order_month, 
    total_order_amount, 
    total_orders, 
    unique_customers, 
    prd_total, 
    prd_dist_total, 
    total_cost, 
    CASE
        WHEN prev_month_order_amount IS NULL THEN NULL
        ELSE (total_order_amount - prev_month_order_amount) / prev_month_order_amount
    END AS month_over_month_change
FROM MonthlyMetricsWithLag
ORDER BY 1, 2;

🧑‍💼 2. 직원별 성과 지표 계산

다음으로, 직원별로 비즈니스 성과를 분석하는 SQL 쿼리를 작성한다. 이를 통해 직원들의 기여도를 파악하고, 비즈니스 의사결정에 활용할 수 있다.

쿼리 설명

  1. EmployeeSales CTE:
    • 주요 계산 항목:
      • 직원 번호, 이름, 직책
      • 총 매출액, 처리한 주문 수, 고유 고객 수
    • 직원별 데이터를 그룹화하여 효율적으로 집계한다.
  2. 최종 결과:
    • 직원의 총 매출액(total_sales)을 기준으로 내림차순 정렬하여 성과를 확인한다.
    • 주문당 평균 매출(average_sales_per_order), 고객당 평균 매출(average_sales_per_customer)을 추가로 계산한다.

주요 코드

WITH EmployeeSales AS (
    SELECT 
        e.employeeNumber, 
        e.firstName, 
        e.lastName, 
        e.jobTitle, 
        SUM(od.quantityOrdered * od.priceEach) AS total_sales, 
        COUNT(DISTINCT o.orderNumber) AS total_orders, 
        COUNT(DISTINCT c.customerNumber) AS unique_customers
    FROM employees AS e 
    JOIN customers AS c 
        ON e.employeeNumber = c.salesRepEmployeeNumber 
    JOIN orders AS o 
        ON c.customerNumber = o.customerNumber 
    JOIN orderdetails AS od 
        ON o.orderNumber = od.orderNumber 
    GROUP BY e.employeeNumber, e.firstName, e.lastName, e.jobTitle
)
SELECT 
    employeeNumber, 
    firstName, 
    lastName, 
    jobTitle, 
    total_sales, 
    total_orders, 
    unique_customers, 
    CASE 
        WHEN total_orders = 0 THEN NULL 
        ELSE total_sales / total_orders 
    END AS average_sales_per_order, 
    CASE 
        WHEN unique_customers = 0 THEN NULL 
        ELSE total_sales / unique_customers 
    END AS average_sales_per_customer
FROM EmployeeSales
ORDER BY total_sales DESC;

🔍 마무리

위 두 쿼리는 비즈니스 데이터를 효과적으로 분석하고 중요한 지표를 도출하는 데 활용된다. 월간 성과 분석을 통해 시간에 따른 변화와 추세를 확인할 수 있으며, 직원별 성과 분석으로 내부 기여도를 파악할 수 있다.

728x90

'대외활동 및 인턴 > 빅데이터 분석 학회 BDA' 카테고리의 다른 글

[강연] 전공자를 위한 데이터 직무 커리어패스  (6) 2024.11.15
피벗 테이블과 코호트 분석 (BDA학회 SQL 문법 기초 연습반)  (0) 2024.11.14
CTE 응용 (BDA학회 SQL 문법 기초 연습반)  (4) 2024.11.10
bda wave  (10) 2024.11.09
[강연] 비전공자를 위한 커리어 패스 강연 : 데이터 분석가란?  (9) 2024.11.08
'대외활동 및 인턴/빅데이터 분석 학회 BDA' 카테고리의 다른 글
  • [강연] 전공자를 위한 데이터 직무 커리어패스
  • 피벗 테이블과 코호트 분석 (BDA학회 SQL 문법 기초 연습반)
  • CTE 응용 (BDA학회 SQL 문법 기초 연습반)
  • bda wave
따`ddah
따`ddah
    250x250
  • 따`ddah
    IT's ddah
    따`ddah
  • 관리    글쓰기
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Projects
        • Auto Post : SNS 자동 업로더
      • kmooc
        • 기계 학습 기반의 데이터 공학
      • Algorithm
        • [C] Do it! 자료구조와 함께 배우는 알고리..
        • 알고리즘 스터디
        • 코딩 테스트
      • Basic
        • 운영체제 OS
        • 컴퓨터구조
        • 소프트웨어공학 (UML)
      • DBMS
        • 데이터베이스 이론
        • MySQL
        • Oracle SQL
        • BigQuery
        • Yammer
      • Programming
        • Python
        • C
        • Java
        • React
        • JavaScript
        • R
      • 빅데이터
      • AI
        • 멀티미디어응용
        • 머신러닝
        • 인공지능
      • 자격증
        • Azure DP-900
        • Azure AI-900
        • SQLD
        • CSTS
      • 대외활동 및 인턴
        • 인턴
        • LG Aimers
        • Outta
        • 빅데이터 분석 학회 BDA
        • 세계시민교육연구소 청년단 GYIA
      • Tool
        • Git
        • IDE
      • 도서
        • IT
      • 그 외
        • 단축키
        • ✞
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬 챗봇 만들기
    리액트
    BDA학회
    Py
    자바스크립트
    input
    importturtle
    오라클SQL
    파이썬{}
    dbms
    python
    js
    오블완
    주석
    빅데이터분석
    파이썬
    대외활동
    print(f"")
    javascript
    자료형
    취업준비
    jsx
    대학생학회
    이름나이
    react
    AI역량검사
    sql
    취업
    Oracle
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
따`ddah
metrics : 연도와 월별 성과 지표 및 직원별 성과 분석 SQL (BDA학회 SQL 문법 기초 연습반)
상단으로

티스토리툴바