2016-02-23 3 views
2

Привет Я хочу, чтобы вычислить накопленную сумму на колонке под названием «percent_sum» и хотел сохранить его в колонке кумулятивного (70) мое имя таблицы localbanya_1, вот моя структура таблицывычисления кумулятивной суммы и хранить его в другой колонке

sku_id new_total percent_sum 
    1   12  30 
    2   8   20 
    3   9   20 
    4   16  10 
    5   10  40 

и это то, что я ожидал

sku_id new_total percent_sum cumulative(70) 
    1   12  30    30   
    2   8  20    30+20 
    3   9  20    30+20+20 
    4   16  10    30+20+20+10 
    5   10  40    30+20+20+10 

любезно помочь. благодарит заранее.

+0

Что вы пробовали до сих пор? пожалуйста, укажите [Минимальный, полный и проверенный пример] (https://stackoverflow.com/help/mcve) – R4PH43L

ответ

4

Вы можете использовать переменную:

SELECT sku_id, new_total, percent_sum, 
     @s := @s + percent_sum AS cumulative 
FROM mytable 
CROSS JOIN (SELECT @s := 0) AS var 
ORDER BY sku_id 
+0

Да, это сработало !!! вместо использования креста я использовал внутреннее соединение. Спасибо большое! – Deepesh

1

Вы можете использовать коррелировать запрос подводить так:

SELECT t.sku_id,t.new_total,t.percent_sum, 
     (select sum(s.percent_sum) from YourTable s 
     where s.sku_id <= t.sku_id) as cumulative 
FROM YourTable t 
+0

Это, похоже, работает в моем сценарии .... Спасибо еще раз! – Deepesh

Смежные вопросы