database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 470 게시물 읽기
No. 470
쿼리 방법을 알려주시면 감사하겠습니다.
작성자
주성열(freeman3)
작성일
2002-07-26 10:48
조회수
5,830

대충 테이블이 이렇게 되어있다고 하고요

ID 점수

a 3

b 10

c 5

d 5

쿼리를 해서 순위값을 알고 싶거든요. 이런식으로

순위 ID 점수

1 b 10

2 c 5

2 d 5

3 a 3

이런식으로 점수 높은 순으로 소트하면서 같은 점수는 같은 순위로 하면서

순위값을 알고 싶습니다. 제가 DB 초보라서 힘드네요. 급해서 그러는데 고수님들이 Sql 문을 가르쳐 주시면 감사하겠습니다.

이 글에 대한 댓글이 총 2건 있습니다.

아래의 쿼리는 무척 비효율적인 쿼리입니다.

 

SELECT Ranking+1 AS Ranking, T1.UID, Score

FROM

(

SELECT R1.UID, Count(R1.UID) AS Ranking

FROM Rank R1, Rank R2

WHERE R1.Score < R2.Score

GROUP BY R1.UID

 

UNION

 

SELECT UID, 0 AS Ranking

FROM Rank

WHERE Score IN (SELECT Max(Score) FROM Rank)

) AS T1,

Rank

WHERE

T1.UID = Rank.UID

ORDER BY Ranking

 

위의 쿼리를 MS-SQL에서 실행시키면 결과는

 

1 b 10

2 c 5

2 d 5

4 a 3 <-- 이것이 맞다고 생각

 

가 됩니다. 즉 a의 등수가 4등이 되는 것이죠.

사용하시는 DBMS에 맞게 효율적으로 바꿔보세요.

 

제 생각에는 스토어드 프로시져를 사용하시는 것이 좋을 듯합니다.

김동아(love89)님이 2002-08-01 01:18에 작성한 댓글입니다.

select id,점수 from 테이블이름 order by 점수

홍길동님이 2002-08-04 20:49에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
479[용어] warehousing ??? [2]
쭈꾸미
2002-07-31
5723
478디비연결할 때 OLE DB와 ODBC 중에서... [2]
전지영
2002-07-31
5973
480┕>Re: 아래에 comment 달아주신분들 넘 감사해요~*^^*(냉텅)
전지영
2002-08-01 11:28:41
5834
472도움을 주실분 찾습니다. [1]
박창수
2002-07-26
5603
470쿼리 방법을 알려주시면 감사하겠습니다. [2]
주성열
2002-07-26
5830
468DB 구축에 대해 조언을 좀 해주세요.. [2]
Terry
2002-07-25
5832
482┕>Re: 다시한번 고민해 주셔요~ ㅠㅠ
정회민
2002-08-01 14:18:11
5968
466[질문] 문자열 카운트 쿼리 [2]
앤디
2002-07-24
5895
463DB tool의 비교를 부탁드립니다...
yjji
2002-07-23
6081
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다