Используя MySQL Workbench , когда я нажимаю CTRL + пробел, похоже, что есть функция автозаполнения (однако в поле автозаполнения нет элементов ). + ----- + --------- + | id | значение | + ----- + --------- + | 12 | 158 | | 15 | 346 | | 27 | 334 | | 84 | 378 | ...
Рассмотрим следующую таблицу:
SELECT id, value FROM table ORDER BY id ASC;
+-----+---------+
| id | value |
+-----+---------+
| 12 | 158 |
| 15 | 346 |
| 27 | 334 |
| 84 | 378 |
| 85 | 546 |
+-----+---------+
Столбец id
автоматически увеличивается, но содержит пробелы. Столбец значение
является числовым.
Я хочу посмотреть на увеличение значения
с течением времени, установив значение
по отношению к значению
двумя строками выше. То есть для строки id = 85
Я хочу установить значение
строки id = 85
(546) по отношению к значению
строки id = 27
(334). Значение, которое должно быть вычислено для строки id = 85
, следовательно, 546/334 = 1,63473.
Это результат, которого я хочу достичь:
SELECT id, value, ...;
+-----+---------+---------------------+
| id | value | value/lag(value, 2) | (the syntax value/lag(value, 2) is made up)
+-----+---------+---------------------+
| 12 | 158 | NULL |
| 15 | 346 | NULL |
| 27 | 334 | 2.11392 | (334/158=2.11392)
| 84 | 378 | 1.09248 | (378/346=1.09248)
| 85 | 546 | 1.63473 | (546/334=1.63473)
+-----+---------+---------------------+
Как выполнить такое отставание в MySQL?
Обратите внимание, что столбец id
содержит пробелы, поэтому простое соединение в одной таблице с t1.id = t2.id - 2
не сработает.