SQL - How to select a row having a column with max value
Solution 1:
Keywords like TOP, LIMIT, ROWNUM, ...etc are database dependent. Please read this article for more information.
http://en.wikipedia.org/wiki/Select_(SQL)#Result_limits
Oracle: ROWNUM could be used.
select * from (select * from table
order by value desc, date_column)
where rownum = 1;
Answering the question more specifically:
select high_val, my_key
from (select high_val, my_key
from mytable
where something = 'avalue'
order by high_val desc)
where rownum <= 1
Solution 2:
Analytics! This avoids having to access the table twice:
SELECT DISTINCT
FIRST_VALUE(date_col) OVER (ORDER BY value_col DESC, date_col ASC),
FIRST_VALUE(value_col) OVER (ORDER BY value_col DESC, date_col ASC)
FROM mytable;