Wcielmy w życie zasadę Pareto (zasada 80/20). Mówi ona, że tylko ok. 20% klientów firmy odpowiada za ok. 80% jej przychodów. Sprawdźmy, czy podobna relacja zachodzi i tu.
W tym celu będziemy potrzebować: ID klienta, łącznej wartości zamówień klienta, udziału procentowego tych zamówień w stosunku do wszystkich zamówień, oraz podliczenia punktów procentowych.
Schamat: OE, Tabela: Customers, Kolumny: customer_id, order_total, Wynik: 47 rows
[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]
WITH Subquery AS
( SELECT DISTINCT customer_id,
SUM(order_total) OVER(partition BY customer_id) AS Customer_Total,
SUM(order_total) OVER() AS Total,
CAST(100* SUM(order_total) OVER(partition BY customer_id) / SUM(order_total) OVER() AS NUMBER(5,2)) AS Customer_Percent
FROM orders
)
SELECT customer_id, customer_total, customer_percent,
SUM(customer_percent) OVER(order by customer_percent DESC) AS Sum_Pct
FROM Subquery
ORDER BY customer_total DESC;
[/spoiler]