sql-server - 无界前行和当前行之间的行仅适用于前 15 行?
问题描述
我正在尝试在我们的系统中获取每个帐户的滚动总数。所以每笔交易逐行加减
我正在尝试在 SQL 2016 中使用未绑定的先前功能。
, SUM(isnull(Value,0.00)) OVER(ORDER BY AccountNo ROWS BETWEEN UNBOUNDED PRECEDING 和当前行) 作为总计
目前这一直有效到第 15 行,然后它只是开始滚动总计每个事务,我尝试了 Unbounded 函数的不同组合,但总是得到相同的结果?
解决方案
如果您想要每个帐户的滚动总和,那么您应该使用以下语法:
SELECT
AccountNo,
TrackingValue,
mk,
SUM(TrackingValue) OVER (PARTITION BY AccountNo ORDER BY mk) AS RollingSum
FROM yourTable
ORDER BY
AccountNo,
mk;
请注意SUM()
,当用作分析函数时, 的默认窗口已经是ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
,因此如果您只需要无界滚动和,则无需明确指定。
推荐阅读
- sql - 将不同表中的数据更新为空行并使用日期汇总数量
- c++ - 自定义 boost 序列化输入存档仅使用向量失败 (boost::archive::archive_exception)
- javascript - 错误类型错误:无法读取 null 的属性“样式”
- spring - com.mongodb.MongoSocketOpenException:使用 Spring Boot 和 mongodb 云打开异常套接字
- python - 如何在句子中找到每个单词可能被 n 个其他单词分隔的单词列表
- database - 在我的 odbc 驱动程序(3.5)中实现了 SQLExtendedFetch 函数,但是 odbc 驱动程序管理器仍然说驱动程序不支持这个函数
- python - Websocket:使用 Dart 客户端和 Autobahn-python 服务器
- javascript - 使用 reactjs 将 api 数据显示到前端(轮询)
- ios - 计算 CGRect 上的新大小和位置
- angular - Angular如何全局/应用范围模板