In this lesson, you will learn how to identify the "vital few" contributors to your business metrics by applying the Pareto Principle—the 80/20 rule—directly within your SQL queries.
The Core Concept: Finding the 80/20 Impact
The Pareto Principle suggests that for many outcomes, roughly 80% of consequences come from 20% of the causes. In database analysis, we often want to know which 20% of products, customers, or regions generate 80% of total revenue. To find this, we use ordered aggregation: we calculate the running total of a metric (like sales) compared to the overall total.
Practical Implementation
To see this in action, we use the SUM() OVER() window function. By ordering our data by individual contribution, we can see the cumulative percentage grow until it hits the 80% threshold.
Consider a sales table where we want to identify which top products generate 80% of our revenue:
WITH ProductSales AS (
SELECT
product_id,
SUM(revenue) AS total_revenue
FROM fact_sales
GROUP BY product_id
),
CumulativeSales AS (
SELECT
product_id,
total_revenue,
SUM(total_revenue) OVER (ORDER BY total_revenue DESC) AS running_total,
SUM(total_revenue) OVER () AS grand_total
FROM ProductSales
)
SELECT
product_id,
(running_total / grand_total) * 100 AS cumulative_percentage
FROM CumulativeSales
WHERE (running_total / grand_total) <= 0.80;
Why This Matters
In this query, the SUM() OVER (ORDER BY ...) creates a running total that allows us to see exactly where the cumulative impact crosses the 80% line. This is far more powerful than just looking at raw totals, as it helps you prioritize resources. For example, if you find that only 10% of your products drive 80% of your revenue, your inventory management and marketing strategies should shift focus toward those specific items to maximize efficiency.
By grouping your dataset and using windowed running totals, you transform raw transactional data into high-impact strategic insights.
Key Takeaway: Use the SUM() window function with an ORDER BY clause to calculate cumulative percentages, allowing you to isolate the small subset of records that drive the vast majority of your business results.