MySQL можно ли при использовании SELECT как-то ссылаться на предыдущую строку выборки?
Есть таблица:
CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`num` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`id`)
)
заполненная значениями num, например: 2, 5, 20.
Можно ли как-то сделать выборку типа:
SELECT num,num-[num из предыдущей выбранной строки] FROM test
чтобы получить на выходе такой ответ:
2, NULL
5, 3
20, 15
Ответы (1 шт):
Автор решения: arnold
→ Ссылка
Вы можете использовать функцию LAG() (доступна начиная с MySQL 8.0.22), которая позволяет выбирать значение столбца из предыдущей строки.
Как результат получится запрос:
SELECT num, LAG(num) OVER (ORDER BY id) - num AS diff
FROM test;