在SUM()里使用SQL变量导致不可预见的结果

select * from test;

|no1|no2|
----+----
|1 | 1 |
|2 | 2 |
|3 | 3 |
|4 | 4 |
|5 | 5 |
----+----

select @wokao:= (no1 + no2), @wokao from test group by no1;

2 2
4 4
6 6
8 8
10 10

select @wokao:= (no1 + no2), sum(@wokao) from test group by no1;

2 null
4 2
6 4
8 6
10 8

似乎sum(@wokao)得到的是,上一行的@wokao的值。这是怎么回事呢?

阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进