Переменная MySQL не установлена ​​в новом сеансе - PullRequest
1 голос
/ 21 октября 2019

У меня следующий запрос, который я выполняю через MySQLWorkbench. Запрос должен возвращать разницу между текущей и предыдущей строками столбца col2 в таблице table1. Каждый раз, когда я запускаю новый сеанс базы данных и запускаю запрос, в столбце diff отображается ноль, но когда я запускаю его во второй раз, значения diff отображаются правильно. Как мне заставить его работать правильно при первом запуске?

 select col1, col2 - @prev as diff , @prev:= col2  
   from table1

1 Ответ

1 голос
/ 21 октября 2019

Используйте приведенный ниже запрос, чтобы получить результат.

 select col1
      , coalesce(col2 - @prev, 0) as diff 
      , @prev as previous
      , @prev := col2 as temp_prev  
   from table1
   join (select @prev := null) t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...