SUM OVER PARTITION BY 2 最后一行相同的值

Posted

技术标签:

【中文标题】SUM OVER PARTITION BY 2 最后一行相同的值【英文标题】:SUM OVER PARTITION BY 2 last row same value 【发布时间】:2019-02-26 00:03:46 【问题描述】:

谁能给我解释一下?

我的查询:

SELECT `Date`,`qtyS`,SUM(`qtyS`) OVER (ORDER BY `Date`)  
FROM  ic_transaction ORDER BY `Date`

我知道了

Date                   qtyS       SUM(qtyS) OVER (ORDER BY `Date`)
2018-06-20 13:11:11    30.0000    30.0000
2018-06-20 14:07:25    10.0000    40.0000
2018-06-20 14:35:45    10.0000    50.0000
2018-06-25 11:19:42   -20.0000    30.0000
2018-06-25 16:49:01   -20.0000    10.0000
2018-06-26 15:52:13    20.0000    30.0000
2018-09-11 21:07:10    10.0000    60.0000
2018-09-11 21:07:10    20.0000    60.0000

为什么最后两行的总和相同?

【问题讨论】:

见:Why should I provide an MCVE for what seems to me to be a very simple SQL query? 【参考方案1】:

最后两行具有完全相同的日期,因此它们被视为等同于排序。因此,它们不仅具有相同的累积总和,而且它们的每个总和都包含这两行的值。

【讨论】:

那么我该如何修复我的查询? @Youngzie 您可以添加辅助排序标准,例如 qtyS

以上是关于SUM OVER PARTITION BY 2 最后一行相同的值的主要内容,如果未能解决你的问题,请参考以下文章

Dplyr 相当于 SUM over PARTITION BY

使用 sum() over(partition by) 逐一计算行中的值

SUM() OVER (PARTITION BY) AS - 存在重复项时

T-SQL-Sum over Partition by 与 group by 组合

MariaDB 查询 SUM() OVER (PARTITION BY)

DB2——sum over partition by 的用法