sql >> Database >  >> RDS >> Mysql

MySQL:verkrijg de n-de hoogste waarde voor elke groep in een tabel

Ik hoop dat er een betere manier is, maar je kunt dit krijgen door twee subquery's al dan niet te kruisen:

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. Wijs plaatsen toe in de beoordeling (MySQL, PHP)

  2. Gegevens plus indexgegevens in het geheugen bewaren - InnoDB vs. MyISAM

  3. Een kml-bestand maken uit een mysql-database met php

  4. Datums middelen in orakel sql