我有一个像这样的 SQL 2008 数据库表
name score
-----------------------
steve 207
steve 205
steve 200
steve 139
我想得到行之间的差异。 eqn = [行 - (行 + 1)]
所以我理想地希望它是
steve 2 //207 - 205
steve 5 //205 - 200
steve 61 //200 - 139
steve 139 //139 - 0
做这个的最好方式是什么?
谢谢!
这是一种方法
with cte as
(SELECT
ROW_NUMBER() OVER (PARTITION BY table.name ORDER BY id) row,
name,
score
FROM table)
SELECT
a.name ,
a.score - ISNULL(b.score,0)
FROM
cte a
LEFT JOIN cte b
on a.name = b.name
and a.row = b.row+1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)