SQlite3使用另一列的前一行值填充新列

时间:2016-11-02 13:26:34

标签: python django sqlite

我想要完全实现此question中给出的内容,但是在SQlite3中不支持LEAD和LAG函数。

我想填充现有表格的一列,其中包含另一列的值但偏移一行

我已经搜索了很长一段时间,但我找不到合适的替代方案。

假设有100行数据,并且已经创建了新列(并且充满了垃圾值),以下代码对我来说根本不会产生任何结果。值保持为垃圾(未更改)。

我管理这个兔子洞的最多的就是:

    for i in range(1, 99):  
        cur.execute('''UPDATE myTable
                       SET a = (SELECT 
                                    CASE WHEN id > 1
                                    THEN b
                                    ELSE 0
                                    END
                                AS b
                                FROM myTable     
                                WHERE id = %d)
                     ''' % i)

根据我对上述的理解,
1.如果id< 1,a = 0
2. IF id> 1,a = b,其中id = i,i落后于1.

我只是在寻找正确方向的推动,上面的代码是输入的,可能在语法上不正确。

我目前正在使用Django上的SQlite3服务器,它将解释python的用法。

任何帮助将不胜感激。

0 个答案:

没有答案