sql - SQL sum 和上一行
问题描述
我有下表:
________________________
date | amount
________________________
01-01-2019 | 10
01-01-2019 | 10
01-01-2019 | 10
01-01-2019 | 10
02-01-2019 | 5
02-01-2019 | 5
02-01-2019 | 5
02-01-2019 | 5
03-01-2019 | 20
03-01-2019 | 20
这些是按日期排列的突变值。我希望我的查询按日期返回总和。所以对于 2019 年 2 月 1 日,我需要 40(4 乘以 10)+20(4 乘以 5)。对于 2019 年 3 月 1 日,我需要(4 次 10)+20(4 次 5)+40(2 次 20)等等。这可能在一个查询中吗?我如何实现这一目标?
我当前获取单个突变的查询:
Select s.date,
Sum(s.amount) As Sum_amount
From dbo.Financieel As s
Group By s.date
解决方案
你可以试试下面 -
select dateval,
SUM(amt) OVER(ORDER BY dateval ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) as amt
from
(
SELECT
dateval,
SUM(amount) amt
FROM t2 group by dateval
)A
输出:
dateval amt
01/01/2019 00:00:00 40
01/02/2019 00:00:00 60
01/03/2019 00:00:00 100
推荐阅读
- c# - 在另一个系统上安装新的 NuGet 包后无法加载文件或程序集
- reactjs - 如何使用带有大型数据集的 API 中的标记的 React-Leaflet
- powershell - 为什么 PowerShell 拒绝我的安全字符串并说它无法将其转换为安全字符串?
- spring-boot - Spring Boot Cassandra:cdodicore.session.DefaultSession:[s0] 协商的协议版本 V5 而不是 v4
- javascript - 如何创建一个滑块来更改表示时间的两个输入框中的数值
- javascript - 如何在笔记本电脑上初始化 Vue2Vis?
- statsmodels - statsmodels 的样本内预测中使用的公式是什么?
- php - 列未找到updated_at和created_at,时间戳为false Laravel 8
- php - 第二天没有出现视频
- node.js - 检测到可能的 EventEmitter 内存泄漏 NodeJS - Lambda