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
운영게시판
최근게시물
Oracle Q&A 24841 게시물 읽기
No. 24841
등수뽑는 간단한 커리 조언좀 바랍니다.
작성자
김진완
작성일
2005-11-14 14:07ⓒ
2005-11-14 14:08ⓜ
조회수
1,452

 

grd id point
1 a 11
1 b 12
1 c 13
1 d 14
1 e 15
1 f 16
1 g 17
1 h 18
1 I 19
2 a 11
2 b 12
2 c 13
2 d 14
2 e 15
2 f 16
2 g 17
2 h 18
3 a 11
3 b 12
3 c 13
3 d 14
3 e 15
3 f 16
3 g 17
3 h 18


위 데이터가있으면 grd 1에 point 가 높은순서대로 id 2명 grd 2에 포인트가 높은순서대로 id 3 명

grd 3 에 포인트가 높은순서대로 id 5명을뽑을려고 합니다.

제일 간단하게 할수있는 방법이 어떤게 있을까요? 조언좀 바랍니다.

point 와 id가 순서대로되어있지만 실제 데이터에선 1씩증가하거나 알파벳으로 하나씩 증가하진 않습니다.

 

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

이 문제는 각 GRD마다 상위 몇 명을 뽑아내야 하는가에 규칙성이 있느냐 없느냐에 따라 쿼리문 작성가능 여부가 갈릴 것 같습니다.

 

현재 GRD1=2,GRD=3,GRD3=5

이렇게 말씀하셨는데 뽑아내야 하는 그룹이 위 3개 밖에 없는지,,,

아니면 다른 그룹도 있는데 뽑아내야 하는 인원수가 무작위적이라면 좀 힘들지 않을까요?

김강환(hashtable)님이 2005-11-14 15:51에 작성한 댓글입니다.

네 뽑아야할 그룹과 인원수가 정해져있습니다.

grd 1 = 2aud  grd 2= 5aud grd 3 =5  명 입니다.

김진완님이 2005-11-14 16:40에 작성한 댓글입니다. Edit

SELECT grd, no, id, point

FROM

(

SELECT grd, id, point,

ROW_NUMBER() OVER(PARTITION BY grd ORDER BY point DESC) no

FROM tab1

)

WHERE no <= DECODE(grd,1,2,2,3,3,5)

마농(manon94)님이 2005-11-14 17:11에 작성한 댓글입니다.

마농님 정말 감사합니다. 

 

김진완님이 2005-11-15 10:34에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
24844오라클서버 끊김현상(vpn사용) 도와주세요..ㅠㅠ [1]
차원기
2005-11-14
3783
24843merge와 trigger중에.. [1]
나그네
2005-11-14
1346
24842shared pool 과 LRU 메카니즘에 대한 조언을 구합니다. [1]
김진성
2005-11-14
1193
24841등수뽑는 간단한 커리 조언좀 바랍니다. [4]
김진완
2005-11-14
1452
24839Oracle DB INSERT등 이벤트 발생시 mysql DB로
신영진
2005-11-14
879
24838원하는 레코드만 뽑아오기 [5]
이태수
2005-11-14
1516
24837즉시백업 가능 예약백업 안됨 ㅠㅠ
신동규
2005-11-14
763
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다