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 41528 게시물 읽기
No. 41528
rank() over() 와 비슷하게 정렬 순위 매기기 도움이 필요합니다.
작성자
초보
작성일
2018-02-22 09:06ⓒ
2018-02-22 09:55ⓜ
조회수
5,984

안녕하세요.

아래와 같은 데이터가 결과로 나올 때 () 항목을 구하고 싶습니다.

 

부서코드 / 성명 / 부서정렬순서 / (페이징처리 계산을 위한 부서코드 정렬 row번호)

a2      a    01    (1)

a2      b    01    (1)

a2      c    01    (1)

a1      d    03    (2)

a1      e    03    (2)

a4      f     07    (3)

a3     g     08    (4)

a5     h     12    (5)

모든 row에 대해 각 row의 부서가 가지는 DISTINCT 정렬순서를 지정하고 싶습니다.

 

위의 데이터를 기준으로 부서는 총 5개가 있으며

총 5개 부서를 기준으로 페이지당 3개부서씩만 뿌려주기 위해 (페이징처리 계산을 위한 부서코드 정렬 row번호) 가 필요합니다.

 

1페이지 : a2, a1, a4 부서만 표시 / 2페이지 : a3, a5 부서만 표시 하기 위해 () 값을 먼저 구한 후 MOD( 2 ) 를 사용해서 부서페이지 구분을 주려고 합니다.

RANK OVER를 쓰면 순위는 정해지나 중복이 걸려서 1-4-6-7-8 이렇게 공동순위가 나와서 MOD를 사용할 수가 없습니다.

 

어떻게 구하면 될까요? 도와주세요.

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

정렬순서 컬럼이 부서에 대한 정렬순서인가요?
그런데..
a2 부서는 3사람 모두 '01' 로 정렬선수가 모두 같은데
a1 부서는 2사람 의 정렬선수가 '03,'05' 각기 다르네요?
원래 다를 수 있는 건지? 질문하다가 오타 난 건지?
다른 경우에 작은 값을 기준으로 하면 되는 건지?

마농(manon94)님이 2018-02-22 09:41에 작성한 댓글입니다.

정렬순서는 부서별 정렬순서라 a2 - a1 - a4 - a3 - a5 순으로 정렬순서가 매핑되어 있어서 01-03-07-08-12로 표시된거구요.  오타입니다. 

초보님이 2018-02-22 09:57에 작성한 댓글입니다. Edit

DENSE_RANK() OVER(ORDER BY 부서정렬순서)

마농(manon94)님이 2018-02-22 10:30에 작성한 댓글입니다.
이 댓글은 2018-02-22 10:51에 마지막으로 수정되었습니다.

답변 감사드립니다. :) 

초보님이 2018-02-22 11:21에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41531Blob컬럼 Update 및 특정문자 붙여넣기
양정표
2018-03-05
5276
41530Sqlldr 데이터 로드시 마지막구분자 없는데이터 어쩌죠? [1]
최종욱
2018-03-05
5357
41529경우의 수 ? 짜는 로직이 있을까요? [2]
XRP에물림
2018-02-28
5924
41528rank() over() 와 비슷하게 정렬 순위 매기기 도움이 필요합니다. [4]
초보
2018-02-22
5984
41527oracle 버전 숫자의 의미를 알고 싶어요 [1]
박도현
2018-02-21
5182
41526한 컬럼에서 문자와 숫자 분리하기.. [6]
박양희
2018-02-20
6388
41525단위가 다른 정보 조회하기 [2]
일쌍다반사
2018-02-14
5377
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다