【发布时间】:2013-07-20 02:01:31
【问题描述】:
我正在尝试使用 sum() over (partition by) 但在该求和中过滤。我的用例是对每个产品的过去 12 个月的总和,最多一个月的条目,所以:
ITEM MONTH SALES
Item A 1/1/2011 2
Item A 2/1/2011 5
Item A 3/1/2011 3
Item A 4/1/2011 7
Item A 5/1/2011 12
Item A 6/1/2011 8
Item A 7/1/2011 9
Item A 8/1/2011 15
Item A 9/1/2011 6
Item A 10/1/2011 7
Item A 11/1/2011 12
Item A 12/1/2011 1
Item A 1/1/2012 3
Item A 2/1/2012 4
Item A 3/1/2012 5
Item A 4/1/2012 6
Item A 5/1/2012 4
Item A 6/1/2012 8
Item A 7/1/2012 9
Item A 8/1/2012 12
Item A 9/1/2012 14
Item A 10/1/2012 8
Item A 11/1/2012 12
Item A 12/1/2012 16
然后会返回:
ITEM MONTH_BEGIN SALES TTM SALES
Item A 1/1/2012 3 87
Item A 2/1/2012 4 88
Item A 3/1/2012 5 87
Item A 4/1/2012 6 89
其中 1/1/12 的 TTM SALES 是 1/1/11-12/1/11 的总和
【问题讨论】:
-
你试过什么SQL?你有什么问题?
-
您使用的是什么数据库软件和版本?它有助于用它标记您的问题,例如
sql-server-2008.
标签: sql window-functions