By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
WITH TBL (ITEM, COST, DAY) AS (
SELECT 'A', 6, TO_DATE('2019-08-13', 'YYYY-MM-DD') FROM DUAL
UNION ALL
SELECT 'B', 4, TO_DATE('2019-08-21', 'YYYY-MM-DD') FROM DUAL
UNION ALL
SELECT 'B', 4, TO_DATE('2019-08-18', 'YYYY-MM-DD') FROM DUAL
UNION ALL
SELECT 'A', 2, TO_DATE('2019-08-21', 'YYYY-MM-DD') FROM DUAL
UNION ALL
SELECT 'B', 5, TO_DATE('2019-08-16', 'YYYY-MM-DD') FROM DUAL
UNION ALL
SELECT 'C', 2, TO_DATE('2019-08-15', 'YYYY-MM-DD') FROM DUAL )
select item, max(day), max(cost) keep (dense_rank last order by day) from tbl group by item;
ITEM | MAX(DAY) | MAX(COST)KEEP(DENSE_RANKLASTORDERBYDAY) |
---|---|---|
A | 21-AUG-19 | 2 |
B | 21-AUG-19 | 4 |
C | 15-AUG-19 | 2 |