Mysql 如何编写查询,从总计中滚动减法以创建衰减曲线

Mysql 如何编写查询,从总计中滚动减法以创建衰减曲线,mysql,Mysql,我想从数据集的总和中减去每个有序行的值。总计为2014217,是数据集中所有视图的总和。以下是我正在寻找的数据集: viewing | views | total ------------------------------------ a0100 | 236303 | 1777914 a0100|a0101 | 9260 | 1768654 a0100|a0101|a0102 | 26670 | 1741984 总数将是总总

我想从数据集的总和中减去每个有序行的值。总计为2014217,是数据集中所有视图的总和。以下是我正在寻找的数据集:

viewing           | views  | total  
------------------------------------
a0100             | 236303 | 1777914
a0100|a0101       |   9260 | 1768654
a0100|a0101|a0102 |  26670 | 1741984
总数将是总总数减去236303,即1777914,然后下一个总数是1777914减去9260,即1768654,依此类推

有人能帮忙吗

谢谢,

Ben

您可以使用变量跟踪前一行的值

尝试以下解决方案:

SELECT     @vw:=CONCAT(@vw, '|', a.viewing) AS viewing
           a.views,
           CASE @total 
               WHEN 0 THEN @total:=b.viewsum - a.views
               ELSE        @total:=@total - a.views
           END AS total
FROM       tbl a
CROSS JOIN (SELECT SUM(views) AS viewsum FROM tbl) b
CROSS JOIN (SELECT @vw:='') vw_init
CROSS JOIN (SELECT @total:=0) total_init