आप 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()
. के बजाय ।