【问题标题】:Sqlite subtract different rows from different columnsSqlite 从不同的列中减去不同的行
【发布时间】: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。

提前致谢!

【问题讨论】:

    标签: sqlite rows window-functions offset subtraction


    【解决方案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

    【讨论】:

    • 这就是我要找的,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2019-06-24
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    相关资源
    最近更新 更多