主題範例:找出特定區間內成長最快的產品並計算成長率
假設有一個「sales」銷售表,欄位包括 product_id、sale_date、amount。本範例要找到今年(2025年)每個產品的銷售成長率,並列出成長最快的前五名產品。
sql
SELECT
product_id,
SUM(CASE WHEN YEAR(sale_date) = 2024 THEN amount ELSE 0 END) AS last_year_sales,
SUM(CASE WHEN YEAR(sale_date) = 2025 THEN amount ELSE 0 END) AS this_year_sales,
CASE
WHEN SUM(CASE WHEN YEAR(sale_date) = 2024 THEN amount ELSE 0 END) = 0 THEN NULL
ELSE
(SUM(CASE WHEN YEAR(sale_date) = 2025 THEN amount ELSE 0 END) - SUM(CASE WHEN YEAR(sale_date) = 2024 THEN amount ELSE 0 END))
/ SUM(CASE WHEN YEAR(sale_date) = 2024 THEN amount ELSE 0 END)
END AS growth_rate
FROM sales
GROUP BY product_id
ORDER BY growth_rate DESC
LIMIT 5;
範例解說:
使用 CASE WHEN 判斷銷售年份,分別加總去年和今年的銷售額。
用今年減去年並除以去年,計算成長率。
排序後挑選成長最快的前五名(LIMIT 5)。
可以用於年度績效分析、產品策略調整等情境。
沒有留言:
張貼留言