Sql 从上一列值减去下一列值?
我有一个数据集,不知何故,下一个单一数据被添加到前一行的数据之上,每一列的数据之上,这意味着, ID为1的行是原始纯数据,但ID为10的行已将前9个数据集中的数据添加到其自身 我现在想要的是得到每个不同项的原始纯数据,这意味着对于每个ID,我如何从ID,10中减去所有数据?我将不得不减去上一个的ID 9等等 我想在SQL Server或Rapidminer中执行此操作,我正在使用这些工具,有什么想法吗? 以下是一个示例:Sql 从上一列值减去下一列值?,sql,sql-server,rapidminer,Sql,Sql Server,Rapidminer,我有一个数据集,不知何故,下一个单一数据被添加到前一行的数据之上,每一列的数据之上,这意味着, ID为1的行是原始纯数据,但ID为10的行已将前9个数据集中的数据添加到其自身 我现在想要的是得到每个不同项的原始纯数据,这意味着对于每个ID,我如何从ID,10中减去所有数据?我将不得不减去上一个的ID 9等等 我想在SQL Server或Rapidminer中执行此操作,我正在使用这些工具,有什么想法吗? 以下是一个示例: ID col1 col2 col3 1 12 2 3
ID col1 col2 col3
1 12 2 3
2 15 5 5
3 20 8 8
所以ID为3的项目的真正正确数据不是20,8,8,而是(20-15),(8-5),(8-5),所以它的5,3,3。。。
除第一项外,每一项的前一项减去后一项
1 12 2 3我认为lag()
是你问题的答案:
select (case when id = 1 then col
else col - lag(col) over (order by id)
end)
但是,示例数据可以澄清问题。在RapidMiner中,系列扩展中包含了
Differention
操作符(默认情况下未安装,需要从RapidMiner Marketplace下载)。这可用于计算相邻示例中属性之间的差异。使用滞后序列
操作符尝试一下,它肯定会起作用!要获得此操作员,您应该从RM marketplace安装series extension
此运算符的作用-他复制所选属性并将示例集的每一行推送一个点,因此ID为1的行将获得ID为2的副本等(您还可以指定滞后值)。之后,您可以使用
生成属性
从一个值中减去另一个值 请编辑您的问题并提供示例数据和所需结果。