Застрял в получении расчетов стоимости транзакции - PullRequest
0 голосов
/ 25 марта 2019

У меня есть таблица событий, и я хочу выполнять вычисления на основе последних значений транзакций.

create table evt (evnt integer not null,
value integer not null,
time datetime not null,
)

и запрос:

SELECT evnt ,value
FROM evt where time IN (select max(time) from events group by evnt )
   GROUP BY evnt ,value

insert into evt values (2,5,'2018-05-09 12:42:00')
insert into evt values (4,-42,'2018-05-09 13:19:57')
insert into evt values (2,2,'2018-05-09 14:48:30')
insert into evt values (2,7,'2018-05-09 12:54:39')
insert into evt values (3,16,'2018-05-09 13:19:57')
insert into evt values (3,20,'2018-05-09 15:01:09')

выход

evnt    |   Value
-------------------
2       |  -5
3       |   4

enter image description here

1 Ответ

0 голосов
/ 25 марта 2019

Исходя из вашего краткого описания, я думаю, это то, что вы хотели

select  evnt, sum(case when rn = 1 then value else -value end)
from
(
    select  *, rn = row_number() over (partition by evnt order by time desc)
    from    evt
) d
where   d.rn    <= 2
group by evnt
having  count(*) = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...