sql - 如何减去下一行SQL Server中的列值

标签 sql sql-server tsql sql-server-2012

我想减去同一列中的值,这个减法应该在下一行完成。

Table Data having 2 columns

我想减去第 1 行和第 2 行的记录,依此类推 (行 2 x - 行 1 x)

最佳答案

您可以使用如下所示的 ANSI 标准 OLAP 函数来获得您想要的结果。

SELECT x,
       min(x) over(
                   ORDER BY id ROWS BETWEEN 1 following AND 1 following) - x AS RESULT
FROM table1;

上述查询按id 对结果进行排序,并从第n + 1 行中减去第n 行,并将结果与​​第 行一起显示n

样本数据和结果:

x                   RESULT
-----------------------------------
318963.0000000000   -95.9999999990
318867.0000000010   -128.0000000000
318739.0000000010   128.0000000000
318867.0000000010   NULL

DEMO

关于sql - 如何减去下一行SQL Server中的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47152721/

相关文章:

c# - 从 WPF 保存到 SQL Server 数据库

javascript - 如何确认数据库中的数据(日期)并显示图像?

sql-server - DTS_E_OLEDBERROR。错误代码 : 0x80004005. SQL Server 的 SQl Native 客户端和 oledb 提供程序之间的差异

sql - 通过存储过程将 stringify serializeArray 存储在 SQL Server 数据库中

SQL Server - 查找基于特定数据类型构建的所有聚集索引的脚本

sql - 存储过程中动态形成的 SQL 是否否定了存储过程的真正目的?

sql - 单个 SQL Server 2012 数据库可以容纳多少个表?

mysql - 按 user_id 分组的 SQL 查询,只获取最近的(按时间),返回有限的对象

sql-server - 将记录从 CTE 插入到表中

sql - 执行存储在表列中的动态 SQL 语句