You can make use of Row Partition in SQL Query. Below is the query which will able to fetch you the latest send date per subscriber. You can do the same fr Open & Click as well.
select
x.AccountID
, x.OYBAccountID
, x.JobID
, x.ListID
, x.BatchID
, x.SubscriberID
, x.SubscriberKey
, x.EventDate
, x.Domain
, x.TriggererSendDefinitionObjectID
, x.TriggeredSendCustomerKey
from (
select
b.AccountID
, b.OYBAccountID
, b.JobID
, b.ListID
, b.BatchID
, b.SubscriberID
, b.SubscriberKey
, b.EventDate
, b.Domain
, b.TriggererSendDefinitionObjectID
, b.TriggeredSendCustomerKey
, row_number() over (partition by b.SubscriberKey order by b.EventDate desc) ranking
from _sent b
) x
where x.ranking = 1
Reference - https://sprignaturemoves.com/picking-rows-with-partitions/
Let me know if this helps.