CREATE TABLE T1
(id int, name varchar2(3), dat timestamp)
;
INSERT ALL
INTO T1 (id, name, dat)
VALUES (1, 'aaa', '10-May-2018 12:00:00 AM')
INTO T1 (id, name, dat)
VALUES (2, 'bbb', '10-May-2018 12:00:00 AM')
INTO T1 (id, name, dat)
VALUES (3, 'ccc', '10-May-2018 12:00:00 AM')
INTO T1 (id, name, dat)
VALUES (4, 'ddd', '11-May-2018 12:00:00 AM')
INTO T1 (id, name, dat)
VALUES (5, 'eee', '11-May-2018 12:00:00 AM')
INTO T1 (id, name, dat)
VALUES (6, 'fff', '13-May-2018 12:00:00 AM')
SELECT * FROM dual
;
Запрос -
select id, name, dat from (
select id, name, dat, dense_rank() over (partition by dat order by id) as rnk
from t1
) where rnk = 1;
ID NAME DAT
1 aaa 2018-05-10 00:00:00.0
4 ddd 2018-05-11 00:00:00.0
6 fff 2018-05-13 00:00:00.0