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

Získejte druhý nejvyšší plat pro každou osobu v mysql

Pomocí agregační funkce a vlastního připojení můžete udělat něco jako

select a.*
from demo a
left join demo b on a.person_id = b.person_id
group by a.person_id,a.salary
having sum(a.salary < b.salary) = 1 /* 0 for highest 1 for second highest 2 for third and so on ... */

nebo pomocí výrazu pro malá a velká písmena v sum

having sum(case when a.salary < b.salary then 1 else 0 end)  = 1

Ukázka



  1. Divize v dotazu Mysql

  2. Scrabble vyhledávač slov se zástupnými znaky

  3. Konfigurace databáze ActiveRecord::AdapterNotSpecified nespecifikuje adaptér

  4. MySQL - Tabulka 'my_table' nebyla uzamčena pomocí Lock Tables