- 论坛徽章:
- 93
|
这是测试的结果,看上去一样,但是略有改动,可能在你那运行的结果也不一样。另外效率也不一定更高,所以仅供参考一下啊。- mysql> select * from test4;
- +----+----+-----+-----+-----+------+
- | id | rq | hsl | cjl | zdf | cjje |
- +----+----+-----+-----+-----+------+
- | 1 | 1 | 1 | 1 | 1 | 1 |
- | 2 | 2 | 2 | 2 | 2 | 2 |
- | 3 | 3 | 3 | 3 | 3 | 3 |
- | 4 | 4 | 4 | 4 | 4 | 4 |
- | 5 | 5 | 5 | 5 | 5 | 5 |
- | 6 | 6 | 6 | 6 | 6 | 6 |
- | 7 | 7 | 7 | 7 | 7 | 7 |
- | 8 | 8 | 8 | 8 | 8 | 8 |
- | 9 | 9 | 9 | 9 | 9 | 9 |
- | 10 | 10 | 10 | 10 | 10 | 10 |
- | 11 | 11 | 11 | 11 | 11 | 11 |
- | 12 | 12 | 12 | 12 | 12 | 12 |
- | 13 | 13 | 13 | 13 | 13 | 13 |
- | 14 | 14 | 14 | 14 | 14 | 14 |
- | 15 | 15 | 15 | 15 | 15 | 15 |
- | 16 | 16 | 16 | 16 | 16 | 16 |
- | 17 | 17 | 17 | 17 | 17 | 17 |
- | 18 | 18 | 18 | 18 | 18 | 18 |
- | 19 | 19 | 19 | 19 | 19 | 19 |
- | 20 | 20 | 20 | 20 | 20 | 20 |
- +----+----+-----+-----+-----+------+
- 20 rows in set
- mysql> set @x_sum_zs=(SELECT id from test4 order by rq desc limit 1)+1;
- set @x_sum_px=@x_sum_zs;
- select
- id,
- @x_sum_px:=(@x_sum_px-1) as sum_px,
- (SELECT SUM(hsl) from test4 where id between @x_sum_px and @x_sum_zs ) as hsl_sum ,
- (SELECT SUM(cjl) from test4 where id between @x_sum_px and @x_sum_zs ) as cjl_sum ,
- (SELECT SUM(zdf) from test4 where id between @x_sum_px and @x_sum_zs ) as zdf_sum ,
- (SELECT SUM(cjje) from test4 where id between @x_sum_px and @x_sum_zs ) as cjje_sum
- from test4 order by id desc limit 370;
- Query OK, 0 rows affected
- Query OK, 0 rows affected
- +----+--------+---------+---------+---------+----------+
- | id | sum_px | hsl_sum | cjl_sum | zdf_sum | cjje_sum |
- +----+--------+---------+---------+---------+----------+
- | 20 | 20 | 20 | 20 | 20 | 20 |
- | 19 | 19 | 39 | 39 | 39 | 39 |
- | 18 | 18 | 57 | 57 | 57 | 57 |
- | 17 | 17 | 74 | 74 | 74 | 74 |
- | 16 | 16 | 90 | 90 | 90 | 90 |
- | 15 | 15 | 105 | 105 | 105 | 105 |
- | 14 | 14 | 119 | 119 | 119 | 119 |
- | 13 | 13 | 132 | 132 | 132 | 132 |
- | 12 | 12 | 144 | 144 | 144 | 144 |
- | 11 | 11 | 155 | 155 | 155 | 155 |
- | 10 | 10 | 165 | 165 | 165 | 165 |
- | 9 | 9 | 174 | 174 | 174 | 174 |
- | 8 | 8 | 182 | 182 | 182 | 182 |
- | 7 | 7 | 189 | 189 | 189 | 189 |
- | 6 | 6 | 195 | 195 | 195 | 195 |
- | 5 | 5 | 200 | 200 | 200 | 200 |
- | 4 | 4 | 204 | 204 | 204 | 204 |
- | 3 | 3 | 207 | 207 | 207 | 207 |
- | 2 | 2 | 209 | 209 | 209 | 209 |
- | 1 | 1 | 210 | 210 | 210 | 210 |
- +----+--------+---------+---------+---------+----------+
- 20 rows in set
- mysql> set @x_sum_zs=(SELECT id from test4 order by rq desc limit 1)+1;
- set @x_sum_px=@x_sum_zs;
- set @hsl_sum := 0;
- set @cjl_sum := 0;
- set @zdf_sum := 0;
- set @cjje_sum := 0;
- select
- id,
- @x_sum_px:=(@x_sum_px-1) as sum_px,
- @hsl_sum := @hsl_sum + hsl as hsl_sum,
- @cjl_sum := @cjl_sum + cjl as cjl_sum,
- @zdf_sum := @zdf_sum + zdf as zdf_sum,
- @cjje_sum := @cjje_sum + cjje as cjje_sum
- from test4 order by id desc;
- Query OK, 0 rows affected
- Query OK, 0 rows affected
- Query OK, 0 rows affected
- Query OK, 0 rows affected
- Query OK, 0 rows affected
- Query OK, 0 rows affected
- +----+--------+---------+---------+---------+----------+
- | id | sum_px | hsl_sum | cjl_sum | zdf_sum | cjje_sum |
- +----+--------+---------+---------+---------+----------+
- | 20 | 20 | 20 | 20 | 20 | 20 |
- | 19 | 19 | 39 | 39 | 39 | 39 |
- | 18 | 18 | 57 | 57 | 57 | 57 |
- | 17 | 17 | 74 | 74 | 74 | 74 |
- | 16 | 16 | 90 | 90 | 90 | 90 |
- | 15 | 15 | 105 | 105 | 105 | 105 |
- | 14 | 14 | 119 | 119 | 119 | 119 |
- | 13 | 13 | 132 | 132 | 132 | 132 |
- | 12 | 12 | 144 | 144 | 144 | 144 |
- | 11 | 11 | 155 | 155 | 155 | 155 |
- | 10 | 10 | 165 | 165 | 165 | 165 |
- | 9 | 9 | 174 | 174 | 174 | 174 |
- | 8 | 8 | 182 | 182 | 182 | 182 |
- | 7 | 7 | 189 | 189 | 189 | 189 |
- | 6 | 6 | 195 | 195 | 195 | 195 |
- | 5 | 5 | 200 | 200 | 200 | 200 |
- | 4 | 4 | 204 | 204 | 204 | 204 |
- | 3 | 3 | 207 | 207 | 207 | 207 |
- | 2 | 2 | 209 | 209 | 209 | 209 |
- | 1 | 1 | 210 | 210 | 210 | 210 |
- +----+--------+---------+---------+---------+----------+
- 20 rows in set
- mysql>
复制代码 |
|