MySQL - 如何删除子查询并简化 - 按年计算销售增长率



我是MySQL的新手,并试图弄清楚是否有办法简化我的查询,以获得"从2014年到2015年销售额增加了多少百分比"。请参阅的

小提琴。

虽然结果是正确的,但我使用了很多子查询。

这是我的想法:

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

有关优化的提示,请随时告诉我。 嘀嘀。

您可以使用条件聚合和一个group by

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

我将把增长率的算术留给你。

最新更新