0

データセットの総計から、順序付けられた各行の値を減算したいと思います。総計は2,014,217で、これはデータセット内のすべてのビューの合計です。以下のデータセットと私が探しているものは次のとおりです。

viewing           | views  | total  
------------------------------------
a0100             | 236303 | 1777914
a0100|a0101       |   9260 | 1768654
a0100|a0101|a0102 |  26670 | 1741984

合計は、総計から236,303を引いた1,777,914になり、次の合計は1,777,914から9,260を引いた1,768,654になります。

誰かが助けることができますか?

ありがとう、
ベン

4

1 に答える 1

0

変数を使用して、前の行の値を追跡できます。

この解決策を試してください:

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
于 2012-07-31T21:07:45.090 に答える