SQL Server 2012窗口函数计算运行总计
发布时间:2020-05-25 21:59:25 所属栏目:MsSql 来源:互联网
导读:我需要一些关于窗口函数的帮助. 我最近一直在玩sql 2012窗口函数.我知道您可以计算窗口内的总和以及窗口内的运行总和.但我在想;是否可以计算先前的运行总数,即不包括当前行的运行总数?我假设您需要使用ROW或RANGE参数,我知道有一个CURRENT ROW选项,但我需要
|
我需要一些关于窗口函数的帮助. 我最近一直在玩sql 2012窗口函数.我知道您可以计算窗口内的总和以及窗口内的运行总和.但我在想;是否可以计算先前的运行总数,即不包括当前行的运行总数?我假设您需要使用ROW或RANGE参数,我知道有一个CURRENT ROW选项,但我需要一个CURRENT ROW – 我的语法无效.我对ROW和RANGE参数的了解是有限的,所以任何帮助都会被感激不尽. 我知道这个问题有很多解决方案,但我希望了解ROW,RANGE参数,我认为这些问题可以解决.我已经提供了一种可能的方法来计算以前的运行总量,但我想知道是否有更好的方法.
解决方法您可以减去当前行的值:SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID
ORDER BY SalesOrderDetailID) - s.OrderQty
或者根据syntax at MSDN和ypercube's answer: <window frame preceding> ::=
{
UNBOUNDED PRECEDING
| <unsigned_value_specification> PRECEDING
| CURRENT ROW
}
- > SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID
ORDER BY SalesOrderDetailID
ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
