在SUM()行数中使用SQL变量导致不可预测结果

 

Query 1)

Select * From test;
no1no2
1 1
2 2
3 3
4 4
5 5

Query 2)

select @wokao:= (no1 + no2), @wokao from test group by no1;
no1no2
2 2
4 4
6 6
8 8
10 10

Query 3)

select @wokao:= (no1 + no2), sum(@wokao) from test group by no1;
no1no2
2 null
4 2
6 4
8 6
10 8

第三个SQL查询的结果很奇怪,理论上它应该得到和query2一样的结果,为什么得到的结果不一样呢。

我在StackOverFlow问了这个问题

答案大该是说,第三个SQL查询中,先执行了SUM(@wokao),后执行了@wokao:= (no1 + no2),导致以上结果。

Written with StackEdit.

posted @ 2015-07-15 11:24  闲暇捻码  阅读(240)  评论(0编辑  收藏  举报