mysql月度销售比较

时间:2014-04-11 21:54:39

标签: mysql compare row left-join delta

我有一张桌子:

 id | year |  quarter  |  month | brand  | sku | total_unit_sales 
 -----------------------------------------------------------------
 1  | 2010 |  1        |  Jan   | Toyota | 123 | 156 
 2  | 2010 |  1        |  Jan   | Toyota | 124 | 77
 3  | 2010 |  1        |  Jan   | Toyota | 125 | 325
 4  | 2010 |  1        |  Feb   | Toyota | 123 | 184 
 5  | 2010 |  1        |  Feb   | Toyota | 124 | 98
 6  | 2010 |  1        |  Feb   | Toyota | 125 | 219 
 7  | 2010 |  1        |  Mar   | Toyota | 123 | 178 
 8  | 2010 |  1        |  Mar   | Toyota | 124 | 101
 9  | 2010 |  1        |  Mar   | Toyota | 125 | 215 
 10 | 2010 |  1        |  Apr   | Toyota | 123 | 216 
 11 | 2010 |  1        |  Apr   | Toyota | 124 | 115
 12 | 2010 |  1        |  Apr   | Toyota | 125 | 278 

我需要按品牌,月份,年份的销售额创建增量指数(一个时间段到其他时期的变化百分比)。这些指数是过去12个月的平均变化,当前季度,上个月与上个月的变化。

我曾经以多阶段方式实现这一目标,创建了许多汇总表,然后生成所需的报告。然而,这是一个手动定制的过程。现在我需要一种全自动的方式来更新数据源并生成报告。

我一直致力于自我加入,但结果并不理想,因为我可以通过自己加入表格来比较以前的价格与最新的价格:

left join on a.id=b.id+1

这很容易出错,因为有些月份没有特定sku的销售数据,而不是在那个月销售。

感谢您的帮助。提前致谢。 mysql ver 5.5 +

1 个答案:

答案 0 :(得分:0)

您的加入方式听起来像是一种有效的方法。您可以使用outer join和IFNULL()来提高数字的质量,以生成合理的值。