sql >> Database teknologi >  >> RDS >> Mysql

MySQL:Få n. højeste værdi for hver gruppe i en tabel

Jeg håber, der er en bedre måde, men du kan få dette ved at krydse eller undlade to underforespørgsler:

Select mytable.Store, mytable.Dept, mytable.Order, mytable.Amount
from mytable m
inner join 
  (Select Amount from mytable n where m.store = n.store and m.dept = n.dept order by Amount desc limit 2) as high_enough
  on mytable.Amount = high_enough.Amount
left join 
   (Select Amount from mytable n where m.store = n.store and m.dept = n.dept order by Amount desc limit 2) as too_high
  where too_high.Amount is null
group by Store, Dept;



  1. MySQL Er der en grænse for InnerJoin?

  2. Hvad er den bedste metode til at overføre parametre til SQLCommand?

  3. Transponering af et sql-resultat, så en kolonne går over i flere kolonner

  4. Bedste måde at håndtere samtidighedsproblemer