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 41977 게시물 읽기
No. 41977
묶음으로 읽기 문의 입니다.
작성자
Kwak(Webbang)
작성일
2023-11-08 14:59ⓒ
2023-11-08 15:07ⓜ
조회수
942

데이터 처리를 100건씩하는 프로그램이 있는데요

같은 고객은 묶어서 처리하려고 하다보니 데이터 구성이 어려워 문의 드립니다.


데이터는 고객번호와 상품코드로 구성되었구요

고객한분이 여러 상품을 가입하고 있는 상태입니다.


고객번호1 상품1

고객번호1, 상품2

고객번호1, 상품3

..

고객번호21 상품70

..(73건)


고객번호2, 상품번호1

고객번호2, 상품번호2

고객번호2, 상품번호3

..(25건)

고객번호3, 상품번호 1

고객번호3, 상품번호 2

...

고객번호3, 상품번호10

(10건)

고객번호4, 상품번호 1

​​​​​​고객번호5, 상품번호 1

고객번상6, 상품번호 1

...

​ 데데이터257건 

이렇게 고객별 상품코드가 있구요


데이터는257건이 있다고 할때

데이터를 꺼낼때

100건식 묶어서 꺼내고 싶은데요

상품코드가 많은 고객을 먼저 꺼내고

꺼낸 건수가 100이 안되면 100건을 채워 꺼내려고 합니다.

이때 100건을 채워서 꺼내기가 어려워 문의 드립니다.

묶음이 포함하여 100을 넘지않게 여러번 꺼내고

싶습니다

고백번호와 고객의 상품수는 증가하는 상태입니다


첫번째 출려결과

고개번호1 상품코드 73건

고객번호2 상품코드 25건

고객번호4 상품코드 1

고객번호4, 상품번호 2


상품코드가 묶음으로 인하여

100을 채울수 없게 되는 경우 

​​​​​고객번와 산품코드를 100이 안되게

여러번 출려하고 싶습니다




 

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

제가 생각한 방식이 맞는지 잘 모르겠네요..


SELECT

        고객번호,

        상품코드,

        ROW_NUMBER() OVER (ORDER BY 상품개수 DESC, 고객번호, 상품코드) AS rn,

        CEIL(ROWNUM / 100) AS 페이지

    FROM (

        SELECT

            고객번호,

            상품코드,

            COUNT(*) OVER (PARTITION BY 고객번호) AS 상품개수

        FROM

            고객상품

    )

 where rownum <=100;

체리블라스트님이 2023-11-23 14:49에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41980시간 간격에 중복되는 시간 찾기 (고수님들 도와주세요~) [1]
초보
2024-01-25
304
41979DBMS_SCHEDULER 잡 실행주기를 종료하면 바로 실행시킬수 있나요 ? [1]
이규동
2024-01-19
354
41978이력내용을 엑셀로 출력하는 쿼리 문의드립니다 [3]
고래
2023-11-28
908
41977묶음으로 읽기 문의 입니다. [1]
Kwak
2023-11-08
942
41976순번 순위 부여 [2]
감사합니다
2023-10-21
1173
41974L [2]
고길당
2023-09-05
1563
41971row을 컬럼으로 변경하는 쿼리 좀 봐주세요, [3]
서주희
2023-09-01
1542
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.029초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다