【问题标题】:MySQL - How to remove subquery and simplify - calculate increase rate of sales by yearMySQL - 如何删除子查询并简化 - 计算每年的销售额增长率
【发布时间】:2017-10-31 15:44:10
【问题描述】:
我是 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
如需优化提示,请随时告诉我。 Tnx。
【问题讨论】:
标签:
mysql
sql
join
subquery
【解决方案1】:
您可以使用条件聚合和一个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
增长速度的算术由你决定。