sql >> Database teknologi >  >> RDS >> Mysql

Sådan finder du top 3 i hvert emne i en given tabel

Du kan gøre dette ved at bruge variabler.

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. Sammensat primær nøgle i django

  2. Dataklassificering i IRI Workbench

  3. Administration af brugerkonti, roller, tilladelser, godkendelse PHP og MySQL -- Del 5

  4. Tabel [tablename] er ikke låst