У меня есть эта таблица
create table events
(
event_type integer not null,
value integer not null,
time timestamp not null,
unique(event_type, time)
);
Я хочу написать SQL-запрос, который для каждого, который был зарегистрирован более одного раза, возвращает разницу между самым последним (т.е. самым последним в терминах)и второй последний.Таблица должна быть упорядочена по (в порядке возрастания).
Пример данных:
event_type | value | time
-------------+------------+--------------------
2 | 5 | 2015-05-09 12:42:00
4 | -42 | 2015-05-09 13:19:57
2 | 2 | 2015-05-09 14:48:30
2 | 7 | 2015-05-09 12:54:39
3 | 16 | 2015-05-09 13:19:57
3 | 20 | 2015-05-09 15:01:09
Выходные данные должны быть
event_type | value
------------+-----------
2 | -5
3 | 4
Пока я пытался сделать это
SELECT event_type
FROM events
GROUP BY event_type
HAVING COUNT(event_type) > 1
ORDER BY event_type
Я не могу найти способ два получить правильное значение для второго столбца, который я упомянул.Я использую PostgreSQL 9.4