Вычислить процент в новом столбце в MySQL

#mysql

#mysql

Вопрос:

У меня есть таблица с данными, как показано ниже

 user_id name    Size    lgdate
1       alpha   1.7     11-03-2019 14:00
1       alpha   0.9     11-03-2019 18:00
1       alpha   1       11-03-2019 22:00
1       alpha   3       12-03-2019 14:00
1       alpha   3.5     12-03-2019 18:00
1       alpha   3.8     12-03-2019 22:00
1       alpha   6       13-03-2019 14:00
1       alpha   6.4     13-03-2019 18:00
1       alpha   7       13-03-2019 22:00
2       beta    4       11-03-2019 14:00
2       beta    5       11-03-2019 18:00
2       beta    5.5     11-03-2019 22:00
2       beta    6       12-03-2019 14:00
2       beta    6.2     12-03-2019 18:00
2       beta    6.4     12-03-2019 22:00
2       beta    6.6     13-03-2019 14:00
2       beta    6.8     13-03-2019 18:00
2       beta    6.9     13-03-2019 22:00
  

У меня есть запрос, который выдает мне результат в виде последней записи для каждой даты и для каждого пользователя до последних 30 дней с текущей даты

запрос —

 select t1.*
from USER_SIZE_VIEW t1,
(select usr_id,date(lgdate), max(lgdate) as max_date
from USER_SIZE_VIEW
group by usr_id,date(lgdate) ) t2
where t1.lgdate = t2.max_date
and t1.lgdate >= DATE(NOW()) - INTERVAL 30 DAY  
  

текущий o / p-

это имеет только одну запись (последнюю запись) в день на пользователя

 user_id name    Size    lgdate
1       alpha   1       11-03-2019 22:00
1       alpha   3       12-03-2019 22:00
1       alpha   6       13-03-2019 22:00
1       alpha   7       14-03-2019 22:00
1       alpha   9       15-03-2019 22:00
1       alpha   10.2    16-03-2019 22:00
1       alpha   13      17-03-2019 22:00
1       alpha   17      18-03-2019 22:00
1       alpha   22      19-03-2019 22:00
1       alpha   23      20-03-2019 22:00
1       alpha   25      21-03-2019 22:00
2       beta    4       11-03-2019 22:00
2       beta    6       12-03-2019 22:00
2       beta    6.6     13-03-2019 22:00
2       beta    7.8     14-03-2019 22:00
2       beta    8       15-03-2019 22:00
2       beta    9       16-03-2019 22:00
2       beta    9       17-03-2019 22:00
2       beta    10      18-03-2019 22:00
2       beta    10      19-03-2019 22:00
  

Я хочу рассчитать процентный рост столбца size и добавить результат в новый столбец, чтобы показать процентный рост

Результат, который я ожидаю —

 user_id name    Size    timestamp           Size growth(%)
1       alpha   1       11-03-2019 22:00    0
1       alpha   3       12-03-2019 22:00    200
1       alpha   6       13-03-2019 22:00    100
1       alpha   7       14-03-2019 22:00    16
1       alpha   9       15-03-2019 22:00    28
1       alpha   10.2    16-03-2019 22:00    13
1       alpha   13      17-03-2019 22:00    27
1       alpha   17      18-03-2019 22:00    30
1       alpha   22      19-03-2019 22:00    29
1       alpha   23      20-03-2019 22:00    4
1       alpha   25      21-03-2019 22:00    8.6
2       beta    4       11-03-2019 22:00    0
2       beta    6       12-03-2019 22:00    50
2       beta    6.6     13-03-2019 22:00    10
2       beta    7.8     14-03-2019 22:00    18.18
2       beta    8       15-03-2019 22:00    2.56
2       beta    9       16-03-2019 22:00    12.5
2       beta    9       17-03-2019 22:00    0
2       beta    10      18-03-2019 22:00    11
2       beta    10      19-03-2019 22:00    0
  

Редактировать —
Я хочу повторно использовать приведенный выше запрос и создать новый столбец с вычислением.

-Спасибо

Комментарии:

1. Какая версия MySQL? 5.x или 8.x? В 8.x вы можете использовать LAG() функцию.

2. @TheImpaler — это равно 5.x