안녕하세요.
여러모로 도움만 받고 있는 회원입니다.
쿼리 문의 좀 드리고자 합니다.
A 테이블
TOTCNT 컬럼에
54 (이 값은 변할 수 있음)
이라는 값이 있습니다.
이 값을 20 이라는 일정한 수로 나누어 아래 결과처럼 얻고자 합니다.
시작수 종료수 COUNT
1 20 20
21 40 20
41 54 14
이와 같은 쿼리가 가능할가요?
with a as
( select 54 totcnt from dual ) select 20*(level-1)+1, case when (20*(level) < totcnt ) then 20*(level) else totcnt end case, case when (20*(level) < totcnt ) then 20 else 54 - 20*(level-1) end case from a connect by level <= round(totcnt/20);
SELECT (LEVEL - 1) * 20 + 1 stacnt , LEAST(LEVEL * 20, totcnt) endcnt , LEAST(LEVEL * 20, totcnt) - (LEVEL - 1) * 20 cnt FROM (SELECT 54 totcnt FROM dual) CONNECT BY LEVEL <= CEIL(totcnt / 20) ;