row_number()
. का उपयोग करें विंडो फ़ंक्शन
select * from
( select *,
row_number()over(partition by s_name order by MARK_VALUE desc) rn
from table_name
) t where t.rn=1
या आप सहसंबद्ध सबक्वेरी का उपयोग कर सकते हैं
select t1.* from table_name t1
where t.MARK_VALUE=(select max(MARK_VALUE) from table_name t2 where t2.S_NAME=t1.S_NAME)