我有一个表格b
与百万行。我想更新列result
与前面的第n行的值(比如前面的第3行的值)。下面的代码可以以非常高的速度更新result
以前一行的值,因为我没有使用join
。但是,它不能更新result
以前的第3行的值。Mysql:如何使用current-x row的值更新当前行?
set @previousRow = 0.0;
ALTER TABLE b ADD previousRow Double;
UPDATE `b` SET `result`[email protected] , previousRow = @previousRow:=`x`;
ALTER TABLE b DROP previousRow;
上面的查询做这个以极高的速度:
id, x, result
1 , 4, 0.0
2 , 6, 4
3 , 5, 6
4 , 6, 5
5 , 5, 6
6 , 3, 5
7 , 2, 3
我想要做的
id, x, result
1 , 4, null
2 , 6, null
3 , 5, null
4 , 6, 4
5 , 5, 6
6 , 3, 5
7 , 2, 6
8 , 7, 5
9 , 9, 3
是可用的LEAD/LAG功能MS Sql 2003?它比使用变量快吗? –
是否有扩展名,我可以安装,以使MySQL实现概率? –
LEAD/LAG直到MS SQL 2012才出现,他们迟到了派对。我认为MySQL中没有任何方法可以解决连接问题。 –