1.단순 순위
ex)
id score 순위
------------------------
aaa 90 1
bbb 85 2
ccc 85 2
ddd 80 4
eee 70 5
------------------------
select a.id, a.점수, (select count(*) + 1
from 해당테이블 b
where a.점수 < b.점수)
from 해당테이블 a
where 해당조건
order by a.id
2.Group별 순위
ex)
id score 순위
------------------------
aaa 90 1
aaa 85 2
aaa 80 3
bbb 80 1
bbb 70 2
ccc 90 1
ccc 85 2
ccc 80 3
------------------------
select a.code, a.점수, (select count(*) + 1
from 해당테이블 b
where a.code = b.code
and a.점수 < b.점수)
from 해당테이블 a
where 해당조건
order by a.code
3.Group별 순위중 같은 Group중 최고점수 한명만 나열...
ex)
id score 순위
------------------------
aaa 95 1
aaa 85
aaa 80
bbb 80 3
bbb 70
ccc 90 2
ccc 85
ccc 80
------------------------
select a.id, a.점수,( select count(*) + 1
from (select id id, max(점수) 점수
from 해당테이블
group by id
) c
where a.점수 < c.점수
)
from (select id id, max(점수) 점수
from 해당테이블
group by id
) a
ex)
id score 순위
------------------------
aaa 90 1
bbb 85 2
ccc 85 2
ddd 80 4
eee 70 5
------------------------
select a.id, a.점수, (select count(*) + 1
from 해당테이블 b
where a.점수 < b.점수)
from 해당테이블 a
where 해당조건
order by a.id
2.Group별 순위
ex)
id score 순위
------------------------
aaa 90 1
aaa 85 2
aaa 80 3
bbb 80 1
bbb 70 2
ccc 90 1
ccc 85 2
ccc 80 3
------------------------
select a.code, a.점수, (select count(*) + 1
from 해당테이블 b
where a.code = b.code
and a.점수 < b.점수)
from 해당테이블 a
where 해당조건
order by a.code
3.Group별 순위중 같은 Group중 최고점수 한명만 나열...
ex)
id score 순위
------------------------
aaa 95 1
aaa 85
aaa 80
bbb 80 3
bbb 70
ccc 90 2
ccc 85
ccc 80
------------------------
select a.id, a.점수,( select count(*) + 1
from (select id id, max(점수) 점수
from 해당테이블
group by id
) c
where a.점수 < c.점수
)
from (select id id, max(점수) 점수
from 해당테이블
group by id
) a