Попробуйте группировать по usr и action, а к ним подтянуть максимальные id и дату.
Вообще костыль, может работать не самым лучшим образом. Если такая выборка нужна часто но она меняется реже 10 минут, к примеру, то можно сделать материализованное представление, что позволит тратить время на его перестройку, а выборка будет достаточно быстрой.
P.S. Вот про него я говорил:
select
max(id) id
, x.usr
, x.action
, max(datetime) datetime
from test x
group by x.usr, x.action
order by id