테이블의 구조
CREATE TABLE TEST (
ID INTEGER,
SCORE INTEGER
);
데이터
INSERT INTO TEST (ID, SCORE) VALUES (1, 80);
INSERT INTO TEST (ID, SCORE) VALUES (2, 88);
INSERT INTO TEST (ID, SCORE) VALUES (3, 90);
INSERT INTO TEST (ID, SCORE) VALUES (4, 80);
INSERT INTO TEST (ID, SCORE) VALUES (5, 70);
INSERT INTO TEST (ID, SCORE) VALUES (6, 64);
쿼리문
SELECT S1.ID,S1.score
,(SELECT COUNT(*)+1 FROM test S2 WHERE S2.score > S1.score) AS standing
FROM test S1
ORDER BY score desc
결과
ID SCORE STANDING
3 90 1
2 88 2
1 80 3
4 80 3
5 70 5
6 64 6
주의사항
서브쿼리가 가능한 파이어버드 버전을 써야합니다.
이쥐엔이에스 님이 쓰신 글 :
: 안녕하세요. :)
:
: 다음과 같은 데이타가 있을때, B가 해당 Row중에 몇등인지 알수있는 함수가 있는지요?
:
: A 38
: B 23
: C 88
: D 22
:
: Thanks in advance.
|