Вот один из вариантов:
SQL> with test (cdate, amount, flag) as
2 (select date '2018-09-12', 191, 1 from dual union all
3 select date '2018-09-12', 190, 0 from dual union all
4 select date '2018-09-13', 187, 0 from dual union all
5 select date '2018-09-14', 200, 1 from dual union all
6 select date '2018-09-14', 201, 0 from dual
7 )
8 select cdate, amount, flag
9 from (select cdate, amount, flag,
10 row_number() over (partition by cdate order by flag desc) rn
11 from test
12 )
13 where rn = 1;
CDATE AMOUNT FLAG
---------- ---------- ----------
12/09/2018 191 1
13/09/2018 187 0
14/09/2018 200 1
SQL>