【发布时间】:2016-12-17 14:33:21
【问题描述】:
您好,我是 SQL 的新手,希望有人能在这件事上帮助我。我一直在这里和那里使用滞后函数,但想知道是否有办法重写它以使其成为一个总和范围。因此,我想取前 12 个月,而不是前一个月,并将每个时期的它们加在一起。我不想写 12 行延迟,但想知道是否有办法用更少的代码行来获得它。注意会有空值,如果 12 条记录之一为空,那么它应该为空。
我知道您可以编写子查询来执行此操作,但想知道这是否可能。任何帮助将非常感激。
【问题讨论】:
-
你可能想要一个 sum() over (partition by left(period,4) order by period)
-
您使用的是哪个版本的
Sql Server? -
您是否每个月都必须有一行,或者您可能缺少行?
标签: sql sql-server sum lag window-functions