Пожалуй, самый быстрый способ:
select t.*
from t
where t.colDate = (select max(t2.colDate) from t t2 where t2.colThree = t.colThree);
Более канонический способ использования row_number()
будет делать то, что вы хотите:
select t.*
from (select t.*,
row_number() over (partition by colThree order by colDate desc) as seqnum
from t
) t
where seqnum = 1;
В случае связей это выберет произвольную строку.