Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zweitletzte Aufzeichnungen

Hier ist eine Option, die user-defined variables verwendet um eine Zeilennummer pro Gruppe von Händlern festzulegen und dann auf die zweite in jeder Gruppe zu filtern, die nach Verträgen geordnet ist:

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