ऐसा लगता है कि आप उच्चतम high_val
वाली पंक्ति का चयन करना चाहते हैं प्रत्येक श्रेणी के लिए। अगर ऐसा है, तो आप row_number()
. का इस्तेमाल कर सकते हैं एक श्रेणी के भीतर प्रत्येक पंक्ति को उसके high_val
. के अनुसार रैंक करने के लिए मान, और केवल उच्चतम रैंक वाली पंक्तियों का चयन करें अर्थात rn = 1
:
select * from (
select row_number() over (partition by category order by high_val desc, date asc) rn, *
from mytable
where something = 'avalue'
) t1 where rn = 1