列数据累加SQL

列数据累加过程对应的SQL

现有一张cats表中的数据如下:
列数据累加SQL
表中的数据有猫猫的属性信息组成,现需要按照猫猫名字升序的顺序进行称重,同时获得当前累计称过的总重量,要求输出的结果如下:
列数据累加SQL
首先看到这个问题的思路:1.猫猫按照名称升序进行称重;2.累计每一次称重的总重量;3.结果保留一位小数;
根据思路得到如下sql:
先声明一个MySQL中的变量;
在称重的过程中一次给变量进行累加赋值;
利用format(data,1)函数,使变量保留一位小数;
最终的SQL如下:
SET @weightsum := 0;
SELECT name, format((@weightsum := @weightsum + weight),1) AS ‘running_total_weight’
FROM cats ORDER BY name ASC;