Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Uzyskaj n-tą najwyższą wartość dla każdej grupy w tabeli

Mam nadzieję, że istnieje lepszy sposób, ale możesz to uzyskać, przecinając lub nie odrzucając dwóch podzapytań:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak właściwie działa SQL LIKE?

  2. C# Używanie parametrów sql, które teraz nie będą działać

  3. MYSQL:Wstawianie tradycyjnego i uproszczonego chińskiego w tej samej „komórce”

  4. Asynchroniczne oczekiwanie podczas wykonywania funkcji C#

  5. Jak uciec przed słowami zastrzeżonymi używanymi jako nazwy kolumn? MySQL/Utwórz tabelę