У меня есть таблица SQLite , которая содержит цены на различные продукты. Это таблица снимков, поэтому она содержит цены с 5-минутными интервалами. Я хотел бы написать запрос, который бы возвращал разницу в цене от одной строки к следующей для каждого элемента.
Столбцы: id (auto inc), record_id (id продукта), цена (цена в тот момент времени), время (в секундах с начала эпохи)
Я пытаюсь вернуть столбец «разница», который содержит значение разницы между интервалами.
Given the following
id record_id price time
1 apple001 36.00 ...
67 apple001 37.87 ...
765 apple001 45.82 ...
892 apple001 26.76 ...
I'd like it to return
id record_id price time difference
1 apple001 36.00 ... 0
67 apple001 37.87 ... 1.87
765 apple001 45.82 ... 7.95
892 apple001 26.76 ... -19.06
Возможно ли это с SQLite?
Во-вторых, должно ли это быть возможным - есть ли способ ограничить его последними 5 или около того записями?
Буду признателен за любую помощь, спасибо.
Просто хотел добавить несколько вещей. Я нашел способы сделать это в других базах данных, но я использую XULRunner, то есть SQLite. Вот почему я работаю с этим вместо этого.
Дополнительный вопрос, возможно, нуждается в уточнении, я ищу порядок по времени, беру и анализирую последние 5 записей. Это проблема, которую я могу решить отдельно, если это будет необходимо.
Вот решение MySQL , вроде. Это тот подход, к которому я стремлюсь, но прерыватель сделки: «Если в таблице есть столбец последовательности, но есть пробелы, перенумеруйте его. Если в таблице нет такого столбца, добавьте один». По своему замыслу в этом сценарии есть пробелы, поскольку одновременно обновляется много записей, и они не будут в порядке.