2010-06-02 2 views
0

У меня таблица, подобранная:Получите предыдущую дату в Mysql

Дата | ID | Значение | Разница

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

I.E

2 дня назад | корова | 1 | Null

Вчера | корова | 2 | Null

Сегодня | корова | 3 | Null разница

Yesterdays будет 1, а сегодня разница будет 1.

в основном, мне нужно, чтобы получить предыдущий рекорд на основе от даты, я не знаю, что интервал в период между каждой записью. Некоторое время я был в тупике. Я использую Mysql и Python для выполнения большинства вычислений.

+1

Это одна из немногих вещей, новых электронные таблицы можно сделать, что БД не может (AFAIK). Конечно, вы можете использовать внешний язык, чтобы рассчитать это. – barrycarter

ответ

0

Используйте SELECT... WHERE date <= NOW() && date >= (NOW() - 90000) (90 000 - это 25 часов, что дает вам небольшую свободу действий со временем вставки), а затем берет разницу между строками в python.

+0

Я немного ржавый в этом, поэтому мой синтаксис может быть выключен. – eykanal

0

В Python, или хранимой процедуре или другом языке:

Query Data using your criteria 
Fetch first record 
Begin Loop 
    Get value of previous record by executing another query (select value from table where date<current_record_date order by date desc limit 1) 
    Update current_record set diff=value-previous value 
    Fetch next record, exit loop if no more 
Iterate Loop 
Смежные вопросы