В postgres, если мне не изменяет память, есть оконные функции. Т.о. запрос может быть таким:
select *
from (select id,
usr,
action,
datetime,
row_number () over (partition by action order by datetime desc) rn
from test_tbl)
where rn = 1
order by datetime;
Оракл такое позволяет:
id usr action datetime rn
---------------------------------------------------------------------
1 Иванов создал 2016.12.08 14:14:30 1
6 Сидоров изменил 2016.12.08 14:16:37 1
7 Сидоров подписал 2016.12.08 14:17:37 1