1
數據的例子:如果order子句中的當前值與以前的特定值不同,則獲取前一個行值?
part val
1 3.0
2 4.0
3 5.0
5 6.0
我需要從塔「VAL」得到上一列,如果電流值列「份」比以前更大的由1
的所期望的結果的例子:
part val val_lag1
1 3.0 NULL
2 4.0 3.0
3 5.0 4.0
5 6.0 NULL
通過使用LAG功能我得到這個結果:
part val val_lag1
1 3.0 NULL
2 4.0 3.0
3 5.0 4.0
5 6.0 5.0
我知道它可以通過連接表本身完成。但我想知道:是否有可能通過LAG獲得相同的結果?
這是我用來獲取例子腳本:
SELECT 1 part, 3.0 val
INTO #t
INSERT INTO #t VALUES
(2, 4.0),
(3, 5.0),
(5, 6.0)
SELECT
*,
LAG(t.val, 1) OVER(ORDER BY t.part) val_lag1
FROM #t t
SELECT
t.*,
tt.val val_lag1
FROM #t t
LEFT JOIN #t tt ON t.part = tt.part + 1
DROP TABLE #t
謝謝你很多。 – Holden263