sql 年級每班前幾名--借鑑-記錄

select   *
from   table1  A
where   id  in   (select   top   3   id   from   table1  where   banji=A.banji   order   by   chengji   desc   )
order   by   banji asc,chengji   desc


select   *
from   table1  A
where   not   exists
(select   1   from  table1  where   banji=A.banji   and   chengji <A.chengji   having   count(1) <4)
order   by   banji asc,chengji   desc

 

//下面方法限於沒有重複成績??

成績表: s_score ( s_class,  s_id,  s_score)

select  s_class,  s_id,  s_score 
from s_score  r1      
where       
    (   
    select count(1)      
    from  s_score  r2      
    where  r2.s_class=r1.s_class     and     r2.s_score >= r1.s_score
    ) <=3  /*這裏的數值表示你想取前幾名*/   
order by   s_class,  s_score

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章