我们有一张表可以跟踪每件产品每天的静态库存值。只有在更改库存时,才会向表中添加新记录。因此,每个日期都没有每个产品的记录。
简而言之,有3列很重要:
对于100,000件产品来说,确定平均库存的速度相当慢。我们尝试了几种解决方案和一些CTE,但我想知道是否有其他聪明的方法我还不知道确定平均库存。
一种产品的数据示例:
id date stock
5 2012/01/07 3
5 2013/04/04 2
5 2013/05/15 1
5 2013/08/07 12
5 2014/06/02 11
现在我在2013年1月1日至2013年12月31日期间运行统计数据。在这段时间内确定平均库存的最快方法是什么?
我真的希望有一些我不知道的聪明的东西..; - )
答案 0 :(得分:0)
您可以使用JOIN
将自己的查询加入,其中右侧的行是左侧行之后的下一次更新:
id date stock prev_date prev_stock
5 2012/01/07 3
5 2013/04/04 2 2012/01/07 3
5 2013/05/15 1 2013/04/04 2
5 2013/08/07 12 2013/05/15 1
5 2014/06/02 11 2013/08/07 12
现在您可以计算每行的时差,从中可以计算加权平均值。