Sqlite 从不同的列中减去不同的行
Sqlite subtract different rows from different columns
假设我有 sql table 这样的:
id | val_1 | val_2
1 | 55 | 300
2 | 90 | 600
3 | 80 | 200
..
现在,我不想减去 300-90,然后减去下一个 600-80 等等,并且偏移一行。 Table 可以是这样的奇数。有没有机会在没有循环和外部函数的情况下做到这一点?我使用 Python api 作为 sqlite3.
提前致谢!
根据您想要的输出,您可以使用 LEAD()
window 函数:
SELECT *,
val_2 - LEAD(val_1, 1, 0) OVER (ORDER BY id) AS difference
FROM tablename;
或LAG()
window函数:
SELECT *,
LAG(val_2, 1, 0) OVER (ORDER BY id) - val_1 AS difference
FROM tablename;
参见demo。
假设我有 sql table 这样的:
id | val_1 | val_2
1 | 55 | 300
2 | 90 | 600
3 | 80 | 200
..
现在,我不想减去 300-90,然后减去下一个 600-80 等等,并且偏移一行。 Table 可以是这样的奇数。有没有机会在没有循环和外部函数的情况下做到这一点?我使用 Python api 作为 sqlite3.
提前致谢!
根据您想要的输出,您可以使用 LEAD()
window 函数:
SELECT *,
val_2 - LEAD(val_1, 1, 0) OVER (ORDER BY id) AS difference
FROM tablename;
或LAG()
window函数:
SELECT *,
LAG(val_2, 1, 0) OVER (ORDER BY id) - val_1 AS difference
FROM tablename;
参见demo。