我是 MySQL 的新手,试图弄清楚是否有一种方法可以简化我的查询,以获得“从 2014 年到 2015 年销售额增长了多少百分比”。请参阅
fiddle .
虽然结果是对的,但是我用了很多子查询。
这是我的想法:
SELECT s15.store_id, SUM(s15.sales)/SUM(s14.sales) - 1
FROM STORE S15 INNER JOIN STORE S14
ON S15.store_id = S14.store_id
WHERE S15.year = 2015 and s14.year = 2014
GROUP BY S15.year, S14.year
有关优化的技巧,请随时告诉我。交易。
最佳答案
您可以使用条件聚合和一个分组依据
:
SELECT store_id,
SUM(CASE WHEN YEAR(order_date) = 2014 THEN order_amount END) AS sell_2014,
SUM(CASE WHEN YEAR(order_date) = 2015 THEN order_amount END) AS sell_2015
FROM Orders
WHERE YEAR(order_date) IN ( 2014, 2015 )
GROUP BY store_id
我将把增长率的算术留给你。
关于MySQL - 如何删除子查询并简化 - 计算每年的销售额增长率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039356/