यहां user-defined variables
का उपयोग करते हुए एक विकल्प दिया गया है व्यापारियों के प्रति समूह एक पंक्ति संख्या स्थापित करने और फिर अनुबंधों द्वारा आदेशित प्रत्येक समूह में 2 को फ़िल्टर करने के लिए:
select *
from (
select *,
@rn:=if(@prevMerchantId=merchantid,
@rn+1,
if(@prevMerchantId:=merchantid, 1, 1)
) as rn
from yourtable cross join (select @rn:=0, @prevMerchantId:=null) t
order by merchantId, contractid desc
) t
where rn = 2