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

Jak najít top 3 topera každého předmětu v dané tabulce

Můžete to udělat pomocí proměnných.

select t.*
from (select t.*,
             (@rn := if(@s = subject, @rn + 1,
                        if(@s := subject, 1, 1)
                       )
             ) as rn
      from t cross join
           (select @rn := 0, @s := '') params
      order by subject, marks desc
     ) t 
where rn <= 3
order by t.subject, t.rn;


  1. Spring Mvc Hibernate Encoding/Multi-line import sql

  2. Získání posledního ID vložení pro mysql po vložení

  3. Jak se mohu programově připojit ke vzdálenému databázovému serveru, který vyžaduje tunel SSH?

  4. Funkce SYS_EXTRACT_UTC() v Oracle