안녕하세요! Analytics Engineer, Jaden 입니다.
데이터 분석을 처음 접하는 분들이라면 한 번쯤 이런 경험을 해보셨을 거예요. 열심히 데이터를 수집하고, 엑셀이나 SQL로 열심히 숫자를 더하고 평균을 내봤는데... 뭔가 결과가 이상하다는 느낌이 드는 거죠. 막상 대표님께 보고를 하려고 보니, 뭔가 앞뒤가 맞지 않는 것 같기도 하고요.
사실 이런 문제의 근본 원인은 바로 'Measure의 유형'에 대한 이해 부족에서 출발합니다.
Measure, 즉 우리가 분석하고자 하는 지표에는 크게 두 가지 유형이 있는데요. 어떤 것은 합산해도 문제가 없지만, 어떤 것은 합산하면 안 되는 것들이 있습니다.
이 두 가지 유형을 'Additive Measures'와 'Non-Additive Measures'라고 부릅니다.
Additive Measures는 말 그대로 합산해도 되는 측정값인 반면, Non-Additive Measures는 합산하면 안 되는 측정값인 거죠.
이번 포스팅에서는 바로 이 Additive Measures와 Non-Additive Measures에 대해 자세히 알아보려고 합니다. 단순히 개념 설명에만 그치는 것이 아니라, 실제 비즈니스 사례와 SQL 쿼리 예제를 함께 살펴볼 거에요.
1. 데이터 모델링 시 Measure 유형에 따른 고려사항을 알고 싶어 하는 데이터 엔지니어 및 BI 개발자들
2. 데이터 분석을 시작한 지 얼마 되지 않아 기본 개념을 다지고 싶은 주니어 데이터 분석가들
3. 데이터 기반 의사결정을 하고 싶지만, 어떤 지표를 어떻게 활용해야 할지 고민하는 중소기업 매니저들
1. Additive Measures
Additive Measures는 여러 Dimension에 걸쳐 합산이 가능한 값들을 말합니다.
쉽게 말해, 각 구성요소들을 더했을 때 전체 합계가 의미 있게 나오는 경우를 의미하는 거죠. 일반적으로 비즈니스에서 가장 많이 다루는 Measure 유형이기도 한데요.
Sales Amount, Order Quantity, Cost, Revenue, Profit 등이 대표적인 예시입니다.
예시 1: E-Commerce Sales 분석
전자상거래 기업 A사는 Daily, Product Category 단위로 Sales Data를 Additive Measure로 관리하고 있습니다.
Date | Product Category | Sales Amount |
---|---|---|
6/1 | Clothing | 10,000,000원 |
6/1 | Electronics | 15,000,000원 |
6/1 | Books | 5,000,000원 |
6/2 | Clothing | 12,000,000원 |
6/2 | Electronics | 18,000,000원 |
6/2 | Books | 8,000,000원 |
이 경우, 6/1과 6/2 양일간의 총 Sales는 각 Category별 Daily Sales를 합산하여 간단히 구할 수 있습니다.
SELECT SUM(Sales_Amount) AS Total_Sales
FROM Sales_Data
WHERE Date IN ('6/1', '6/2');
- 6/1, 6/2 양일간 총 Sales = 10,000,000 + 15,000,000 + 5,000,000 + 12,000,000 + 18,000,000 + 8,000,000 = 68,000,000원
뿐만 아니라, Category Dimension에서도 합산이 가능하죠.
SELECT Product_Category, SUM(Sales_Amount) AS Category_Sales
FROM Sales_Data
WHERE Date IN ('6/1', '6/2')
GROUP BY Product_Category;
- Clothing Category 총 Sales = 10,000,000 + 12,000,000 = 22,000,000원
- Electronics Category 총 Sales = 15,000,000 + 18,000,000 = 33,000,000원
- Books Category 총 Sales = 5,000,000 + 8,000,000 = 13,000,000원
이처럼 Additive Measures를 활용하면 Time, Category 등 다양한 Dimension에서의 Sales 현황과 추이를 손쉽게 파악할 수 있습니다.
또한 이렇게 집계된 데이터는 추가적인 분석, 예를 들면 일별 평균 매출 추이나 카테고리별 매출 비중 변화 등을 살펴보는 데에도 활용할 수 있죠.
예시 2: 제조업체의 생산량 분석
제조업체 B사는 공장별, 제품별 일일 생산량 데이터를 관리하고 있습니다.
Date | Factory | Product | Quantity |
---|---|---|---|
7/1 | A | P1 | 1,000 |
7/1 | A | P2 | 1,500 |
7/1 | B | P1 | 800 |
7/2 | A | P1 | 1,200 |
7/2 | A | P2 | 1,800 |
7/2 | B | P1 | 1,000 |
이 데이터를 바탕으로 특정 기간 동안의 총 생산량을 구할 수 있습니다.
SELECT SUM(Quantity) AS Total_Production
FROM Production_Data
WHERE Date BETWEEN '7/1' AND '7/2';
- 7/1, 7/2 이틀간 총 생산량 = 1,000 + 1,500 + 800 + 1,200 + 1,800 + 1,000 = 7,300
또한 공장별, 제품별 생산량 합계도 계산할 수 있죠.
SELECT Factory, Product, SUM(Quantity) AS Production_by_Factory_Product
FROM Production_Data
WHERE Date BETWEEN '7/1' AND '7/2'
GROUP BY Factory, Product;
- A공장 P1 제품 생산량 = 1,000 + 1,200 = 2,200
- A공장 P2 제품 생산량 = 1,500 + 1,800 = 3,300
- B공장 P1 제품 생산량 = 800 + 1,000 = 1,800
이를 통해 각 공장의 생산 능력과 제품별 생산 비중을 파악할 수 있습니다. 나아가 생산 계획 수립과 자원 배분 의사결정에 활용할 수 있겠죠.
2. Non-Additive Measures
Non-Additive Measures는 합산을 적용할 수 없는 값들을 의미합니다.
합산 시 그 결과가 현실적 의미를 갖기 힘든 경우가 많은데요. 대표적인 예로는 Average, Percentage, Ratio, Ranking 등을 들 수 있습니다.
예시 1: Customer Satisfaction 분석
B사는 Quarterly로 Customer Satisfaction Survey를 실시하고 있습니다.
Quarter | Satisfaction Score (Out of 5) |
---|---|
1Q | 4.2 |
2Q | 3.8 |
3Q | 4.5 |
4Q | 4.1 |
이 때 각 Quarter별 Score를 단순히 합산한 16.6점을 연간 Customer Satisfaction으로 해석하는 것은 적절하지 않습니다. Satisfaction Score의 의미상 평균을 내는 것이 합리적이겠죠.
SELECT AVG(Satisfaction_Score) AS Annual_Average_Satisfaction
FROM Satisfaction_Data;
- 연간 평균 Satisfaction Score = (4.2 + 3.8 + 4.5 + 4.1) / 4 = 4.15점
여기서 주목할 점은 Quarter별 추이를 통해 개선 여부를 판단할 수 있다는 사실입니다. 3분기의 경우 4.5점으로 Satisfaction이 크게 상승했는데요.
해당 기간에 시행한 Customer Service 강화 정책이 주효했던 걸로 해석해 볼 수 있겠죠?
반면 4분기에는 다시 하락세를 보였네요. 연말 Peak Season에 대응이 다소 미흡했던 게 아닐까 싶습니다.
예시 2: 상품 재고 회전율 분석
유통업체 D사는 상품별 재고 회전율을 KPI로 관리하고 있습니다.
Product | Inventory Turnover Ratio |
---|---|
A | 5.2 |
B | 3.8 |
C | 6.5 |
D | 4.1 |
이 경우에도 상품별 Turnover Ratio를 합산하는 것은 의미가 없습니다. 대신 평균을 내거나 상품 간 비교 분석을 하는 것이 더욱 유용하겠죠.
SELECT AVG(Turnover_Ratio) AS Average_Turnover_Ratio
FROM Inventory_Data;
- 평균 재고 회전율 = (5.2 + 3.8 + 6.5 + 4.1) / 4 = 4.9
이를 통해 전체 상품의 평균적인 재고 효율성을 파악할 수 있습니다. 아울러 상품별 Turnover Ratio 비교를 통해 재고 관리 우수 상품과 개선이 필요한 상품을 식별할 수 있겠죠.
SELECT Product, Turnover_Ratio
FROM Inventory_Data
ORDER BY Turnover_Ratio DESC;
- 재고 회전율이 가장 높은 상품은 C (6.5)
- 재고 회전율이 가장 낮은 상품은 B (3.8)
이를 바탕으로 상품별 발주량과 재고 수준을 조정하는 등 재고 최적화 전략을 수립할 수 있을 것입니다.
예시 3: 학생 성적 평가
교육 기관 E는 학생들의 과목별 점수와 등수 데이터를 관리하고 있습니다.
Student | Subject | Score | Rank |
---|---|---|---|
A | Math | 85 | 3 |
A | English | 92 | 1 |
B | Math | 90 | 2 |
B | English | 88 | 2 |
C | Math | 78 | 5 |
C | English | 85 | 4 |
여기서 점수(Score)는 Additive Measure로, 합산을 통해 학생별 총점을 계산할 수 있습니다.
SELECT Student, SUM(Score) AS Total_Score
FROM Grade_Data
GROUP BY Student;
- 학생 A 총점 = 85 + 92 = 177점
- 학생 B 총점 = 90 + 88 = 178점
- 학생 C 총점 = 78 + 85 = 163점
반면, 등수(Rank)는 Non-Additive Measure로, 합산은 불가능합니다. 대신 각 과목별 등수를 비교하거나, 과목별 최고/최저 등수를 파악하는 데 활용할 수 있죠.
SELECT Subject, MIN(Rank) AS Best_Rank, MAX(Rank) AS Worst_Rank
FROM Grade_Data
GROUP BY Subject;
- Math 과목 최고 등수 = 2, 최저 등수 = 5
- English 과목 최고 등수 = 1, 최저 등수 = 4
이를 통해 학생별 강점 과목과 취약 과목을 진단하고, 맞춤형 학습 계획을 수립하는 데 도움을 줄 수 있습니다.
정리
Additive Measures와 Non-Additive Measures는 데이터 분석 시 반드시 구분해야 할 중요한 개념입니다. Additive Measures는 여러 Dimension에 걸쳐 합산이 가능한 값들로, Sales Amount, Quantity 등이 대표적입니다. 이를 활용하면 다양한 기준에서의 현황과 추이를 손쉽게 파악할 수 있죠.
반면 Non-Additive Measures는 합산을 적용할 수 없는 값들인데요. Average, Percentage, Ratio, Ranking 등이 이에 해당합니다.
이 경우에는 평균을 내거나 개별 값 간 비교 분석을 하는 것이 더욱 유의미합니다.
실제 비즈니스 상황에서는 이 두 유형의 Measures가 혼재되어 있는 경우가 많은데요. 분석 목적에 맞게 적절한 계산 방식을 적용해야 합니다.
아직 안 사용해보셨다면 지금 무료로 시작해 보세요.