Когда я попробовал решение a_horse_with_no_name, мне пришлось удалить часть 'section by id', чтобы получить результат (я использую PG 9.2)
SELECT id, total, total - lag (total) over (упорядочить по метке времени) как diff_since_last FROM the_table_with_no_name