sql >> Databáze >  >> RDS >> Mysql

MySQL:Získejte n-tou nejvyšší hodnotu pro každou skupinu v tabulce

Doufám, že existuje lepší způsob, ale můžete toho dosáhnout tak, že protnete nebo nezadáte dva poddotazy:

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. Funkce JSON_OBJECTAGG() v Oracle

  2. Změna kódování znaků MySQL. Je zachována integrita dat?

  3. JSON z twitter API obsahuje \u2019

  4. MySQL LIKE vs LOCATE