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 40869 게시물 읽기
No. 40869
그룹 번호 매기기 문의 드립니다.
작성자
김미림
작성일
2015-07-22 10:27
조회수
7,993

 안녕하세요.

 
그룹 기준 번호  문의 드립니다.
 
다음과 같은 데이타 구조가 있습니다.
 
v1 기준으로 v2 가 동일데이타를  묶어   
순서대로 일련번호를 표시해야 합니다.
 
감사합니다.
 
 
 
 
 
with t as ( 
select 1 seq ,'A1' v1 ,1 v2 from dual union all
select 2,'A1',2 from dual union all
select 3,'A1',2 from dual union all
select 4,'A1',2 from dual union all
select 5,'A1',3 from dual union all
select 6,'A1',2 from dual union all
select 7,'A1',2 from dual union all
select 8,'A1',2 from dual union all
select 9,'A1',4 from dual union all
select 10,'A1',2 from dual union all
select 11,'A1',2 from dual union all
select 12,'A1',2 from dual union all
select 13,'A1',1 from dual union all
select 14,'B1',1 from dual union all
select 15,'B1',2 from dual union all
select 16,'B1',2 from dual union all
select 17,'B1',2 from dual union all
select 18,'B1',2 from dual union all
select 19,'B1',2 from dual union all
select 20,'B1',3 from dual union all
select 21,'B1',2 from dual union all
select 22,'B1',2 from dual union all
select 23,'B1',2 from dual union all
select 24,'B1',1 from dual union all
select 25,'B1',2 from dual union all
select 26,'B1',2 from dual union all
select 27,'B1',2 from dual union all
select 28,'B1',2 from dual union all
select 29,'B1',3 from dual
)
 
select * from t 
 
 
 
seq v1 v2
1 A1 1
2 A1 2
3 A1 2
4 A1 2
5 A1 3
6 A1 2
7 A1 2
8 A1 2
9 A1 4
10 A1 2
11 A1 2
12 A1 2
13 A1 1
14 B1 1
15 B1 2
16 B1 2
17 B1 2
18 B1 2
19 B1 2
20 B1 3
21 B1 2
22 B1 2
23 B1 2
24 B1 1
25 B1 2
26 B1 2
27 B1 2
28 B1 2
29 B1 3
 
결과값은 다음과 같습니다.
seq v1 v2 번호
1 A1 1
1
2 A1 2
2
3 A1 2
2
4 A1 2
2
5 A1 3
3
6 A1 2
4
7 A1 2
4
8 A1 2
4
9 A1 4
5
10 A1 2
6
11 A1 2
6
12 A1 2
6
13 A1 1
7
14 B1 1
1
15 B1 2
2
16 B1 2
2
17 B1 2
2
18 B1 2
2
19 B1 2
2
20 B1 3
3
21 B1 2
4
22 B1 2
4
23 B1 2
4
24 B1 1
5
25 B1 2
6
26 B1 2
6
27 B1 2
6
28 B1 2
6
29 B1 3
7
 
 
 

감사합니다.

 
 

 

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

SELECT seq, v1, v2
     , SUM(flag) OVER(PARTITION BY v1 ORDER BY seq) no
  FROM (SELECT seq, v1, v2
             , DECODE(LAG(v2) OVER(PARTITION BY v1 ORDER BY seq)
               , v2, 0, 1) AS flag
          FROM t
        )
 ORDER BY v1, seq
;

마농(manon94)님이 2015-07-22 11:31에 작성한 댓글입니다.

 

마농님  항상 너무 감사드립니다.

김미림님이 2015-07-22 21:10에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40872sql 질문하나 할께요. [2]
이현정
2015-07-23
7514
40871조직도를 만드는 쿼리가 계층쿼리 없이 되어 있어서 [4]
계층
2015-07-22
7820
40870혹시 이런게 가능한지요?? (고정컬렁횡 -> 로우로 변환) [2]
량디
2015-07-22
7956
40869그룹 번호 매기기 문의 드립니다. [2]
김미림
2015-07-22
7993
40868[급해요]중복 일수 제외하고 기간 구하기 [4]
초보자
2015-07-22
9524
40867마농님.... 도와 주세요... [4]
초초보
2015-07-20
7855
40866이거 모르겟네요;; [1]
이기쁨
2015-07-18
7601
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.032초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다