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 41812 게시물 읽기
No. 41812
상품정보 Cleansing 자료 추출 쿼리좀 부탁드리겠습니다.
작성자
Airman
작성일
2020-09-10 19:13
조회수
1,715

 

안녕하십니까. 프로젝트를 진행하며 막히는 부분이 있어 질문드립니다.

 

상품정보가 오랜기간 누적되다보니 동일 상품이지만 각각의 상품코드를 가지고 있어서 정리를 하려고 합니다.

KEY NM RN ISBN USE_YN
1001911884 고등어 1 0605153392272 Y
1001911886 고등어 2 0605153392272 N
1001911885 고등어 3 0605153392272 N
1001911883 고등어 4 0605153392272 N
1001911882 고등어 5 0605153392272 N
1001911878 고등어 6 0605153392272 N
1001911887 고등어 7 0605153392272 N
1001911888 고등어 8 0605153392272 N
1001911879 고등어 9 0605153392272 N
1001911876 고등어 10 0605153392272 N
1001911877 고등어 11 0605153392272 N
1001911881 고등어 12 0605153392272 N
1002387751 오징어 1 1021072331346 Y
1001511354 오징어 2 1021072331346 N
1001511349 오징어 3 1021072331346 N
1001511353 오징어 4 1021072331346 N
1001511344 오징어 5 1021072331346 N
1001511371 오징어 6 1021072331346 N
1001827278 오징어 7 1021072331346 N
1001511363 오징어 8 1021072331346 N
1001511357 오징어 9 1021072331346 N
1001827271 오징어 10 1021072331346 N
1001511370 오징어 11 1021072331346 N
1001841267 오징어 12 1021072331346 N
1001827277 오징어 13 1021072331346 N
1001827276 오징어 14 1021072331346 N
1001511368 오징어 15 1021072331346 N
1001511350 오징어 16 1021072331346 N
1001511362 오징어 17 1021072331346 N
1001511378 오징어 18 1021072331346 N
1001511355 오징어 19 1021072331346 N
1001511348 오징어 20 1021072331346 N
1001511380 오징어 21 1021072331346 N
1001511366 오징어 22 1021072331346 N
1001511342 오징어 23 1021072331346 N

쿼리로 위와 같이 데이터를 추출했습니다.

RN값이 1이며 USE_YN값이 Y인 데이터의 KEY값을 ISBN값이 동일한 데이터에 정리대상 KEY로 추출하고 싶습니다.

 

원하는 값은 아래와 같이 추출될 수 있었으면 좋겠습니다.

KEY 정리대상KEY NM RN ISBN USE_YN
1001911884   고등어 1 0605153392272 Y
1001911886 1001911884 고등어 2 0605153392272 N
1001911885 1001911884 고등어 3 0605153392272 N
1001911883 1001911884 고등어 4 0605153392272 N
1001911882 1001911884 고등어 5 0605153392272 N
1001911878 1001911884 고등어 6 0605153392272 N
1001911887 1001911884 고등어 7 0605153392272 N
1001911888 1001911884 고등어 8 0605153392272 N
1001911879 1001911884 고등어 9 0605153392272 N
1001911876 1001911884 고등어 10 0605153392272 N
1001911877 1001911884 고등어 11 0605153392272 N
1001911881 1001911884 고등어 12 0605153392272 N
1002387751   오징어 1 1021072331346 Y
1001511354 1002387751 오징어 2 1021072331346 N
1001511349 1002387751 오징어 3 1021072331346 N
1001511353 1002387751 오징어 4 1021072331346 N
1001511344 1002387751 오징어 5 1021072331346 N
1001511371 1002387751 오징어 6 1021072331346 N
1001827278 1002387751 오징어 7 1021072331346 N
1001511363 1002387751 오징어 8 1021072331346 N
1001511357 1002387751 오징어 9 1021072331346 N
1001827271 1002387751 오징어 10 1021072331346 N
1001511370 1002387751 오징어 11 1021072331346 N
1001841267 1002387751 오징어 12 1021072331346 N
1001827277 1002387751 오징어 13 1021072331346 N
1001827276 1002387751 오징어 14 1021072331346 N
1001511368 1002387751 오징어 15 1021072331346 N
1001511350 1002387751 오징어 16 1021072331346 N
1001511362 1002387751 오징어 17 1021072331346 N
1001511378 1002387751 오징어 18 1021072331346 N
1001511355 1002387751 오징어 19 1021072331346 N
1001511348 1002387751 오징어 20 1021072331346 N
1001511380 1002387751 오징어 21 1021072331346 N
1001511366 1002387751 오징어 22 1021072331346 N
1001511342 1002387751 오징어 23 1021072331346 N

 

제발 해결방법이 있었으면 좋겠습니다. 부탁드립니다.

 

오늘도 좋은 하루 보내시기 바랍니다.

감사합니다.

 

 

 

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

안녕하세요. FIRST_VALUE를 사용해봤습니다. 


WITH T AS (
SELECT '1001911884' KEY, '고등어' NM, 1 RN, '0605153392272' ISBN, 'Y' USE_YN from dual
UNION ALL SELECT '1001911886', '고등어', 2, '0605153392272', 'N' from dual
UNION ALL SELECT '1001911885', '고등어', 3, '0605153392272', 'N' from dual
UNION ALL SELECT '1002387751', '오징어', 1, '1021072331346', 'Y' from dual
UNION ALL SELECT '1001511354', '오징어', 2, '1021072331346', 'N' from dual
UNION ALL SELECT '1001511349', '오징어', 3, '1021072331346', 'N' from dual
)
SELECT KEY,
       CASE WHEN RN=1 THEN '' ELSE FIRST_VALUE(KEY) OVER (PARTITION BY NM ORDER BY RN ) END, 
       NM,
       RN, 
       ISBN,
       USE_YN
  FROM T

 

정상규(pajama)님이 2020-09-10 21:08에 작성한 댓글입니다.

 헉.... LAG 함수로 어떻게든 만들어 보려 노력하다 아무리 생각해도 답이 안나와 올렸는데 제가 너무 깊은 생각을 했었네요.. 정알 감사합니다. 

Airman님이 2020-09-11 08:31에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41815[질문] 미국 서머타임 여부 확인방법?
작성자
2020-09-23
1525
41814tkprof 트레이스 파일 비교 문의 [1]
축구선수
2020-09-16
1503
41813연속근무 구하기 도움요청드립니다.
피어스
2020-09-14
1712
41812상품정보 Cleansing 자료 추출 쿼리좀 부탁드리겠습니다. [2]
Airman
2020-09-10
1715
41810쿼리 질문좀 드려도 될가요?
염정훈
2020-08-21
1769
41809oracle 10g 설치 오류 [1]
장현옥
2020-08-19
5014
41808오라클 인라인뷰 성능 및 where 1= decode() 사용에 관한 질문입니다. [1]
보통남
2020-07-28
2022
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다