希望找出各班的排名, 或者找出指定名次的學生.
解題時,以B欄為群組的分類,並依據是C欄與D欄值的大小排名,名次其實就是找出比自己大的筆數再加上自己.
PS:這種邏輯下,可能出現兩個同分的第1名,而第2名.從缺的情況
資料表:T2
A B C D
--------------------
[1111] [1] [1] [1]
[2222] [1] [1] [2]
[3333] [2] [1] [1]
[4444] [2] [2] [1]
[5555] [2] [2] [2]
排名:以count(y.a)表示
select x.a
from t2 x, t2 y
where x.b = y.b and
( ((x.c < c="y.c">
OR
(x.a=y.a and x.b=y.b and x.c=y.c and x.d=y.d)
)
group by x.a, x.b, x.c, x.d
having count(y.a) = 1 --------> 只顯示排名為1的資料,
order by x.a, x.b, x.c, x.d
結果:
A
------
[2222]
[5555]
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。