Sqlite 从不同的列中减去不同的行
Posted
技术标签:
【中文标题】Sqlite 从不同的列中减去不同的行【英文标题】:Sqlite subtract different rows from different columns 【发布时间】:2022-01-21 14:39:36 【问题描述】:假设我有这样的 sql 表:
id | val_1 | val_2
1 | 55 | 300
2 | 90 | 600
3 | 80 | 200
..
现在,我不想减去 300-90,然后再减去 600-80,依此类推,偏移量为一行。表可以是这样的奇数。有没有机会在没有循环和外部功能的情况下做到这一点?我将 Python api 用于 sqlite3。
提前致谢!
【问题讨论】:
【参考方案1】:根据您想要的输出,您可以使用LEAD()
窗口函数:
SELECT *,
val_2 - LEAD(val_1, 1, 0) OVER (ORDER BY id) AS difference
FROM tablename;
或LAG()
窗口函数:
SELECT *,
LAG(val_2, 1, 0) OVER (ORDER BY id) - val_1 AS difference
FROM tablename;
请参阅demo。
【讨论】:
这就是我要找的,谢谢:)以上是关于Sqlite 从不同的列中减去不同的行的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Treeview / Tkinter (SQLite) 中的不同表中获取不同的值?