-- 1. Order By & Rownum -- SELECT * FROM (SELECT * FROM t ORDER BY price DESC, upd_date DESC ) WHERE ROWNUM <= 1 ; -- 2. Row_Number -- SELECT id, upd_date, price FROM (SELECT id, upd_date, price , ROW_NUMBER() OVER(ORDER BY price DESC, upd_date DESC) rn FROM t ) WHERE rn = 1 ; -- 3. Max() Keep -- SELECT MAX(id ) KEEP(DENSE_RANK LAST ORDER BY price, upd_date) id , MAX(upd_date) KEEP(DENSE_RANK LAST ORDER BY price, upd_date) upd_date , MAX(price ) price FROM t ;