आप row_number() . का उपयोग करके इस तक पहुंच सकते हैं :
select key, val
from (select t.*, row_number() over (partition by key order by num desc) as seqnum
from table_name t
) t
where seqnum = 1;
क्या आप इसे अधिक "सुरुचिपूर्ण" मानते हैं, शायद स्वाद का मामला है।
मुझे यह बताना चाहिए कि यह आपकी क्वेरी से काफी अलग है। यह प्रत्येक key . के लिए एक पंक्ति लौटाने की गारंटी है; तुम्हारा कई पंक्तियों को वापस कर सकता है। यदि आप ऐसा व्यवहार चाहते हैं, तो बस rank() . का उपयोग करें या dense_rank() row_number() . के बजाय ।