point테이블
idx points time
1 1000 1400000000
2 1000 1500000000
3 1000 1600000000
이라는 테이블에서 time이 낮은거부터 시작해 2500(임의의값)이라는 값이 들어와
points 의 값을 더해서 같더나 많을때까지만 의 레코트를 뽑아올수있을까요?
레코트를 뽑아오면
1 1000 1400000000
2 1000 1500000000
3 1000 1600000000
이런값이 나오겠습니다..
다른 예로 들어서는 1500(임의의값)이라는 값이 들어오게되면
1 1000 1400000000
2 1000 1500000000
이 두개의 레코드가 나오도록 하고싶습니다..
또 다른 예로는 1000이라는 값이 들어오게되면
1 1000 1400000000
이값만 나오도록하고싶습니다..
WITH point(idx, points, time) AS ( SELECT 1, 1000, 1400000000 FROM DUAL UNION ALL SELECT 2, 1000, 1500000000 FROM DUAL UNION ALL SELECT 3, 1000, 1600000000 FROM DUAL ) SELECT idx, points, time FROM ( SELECT idx, points, time , SUM(points) OVER(ORDER BY IDX)-points P_SUM FROM POINT ) WHERE P_SUM < 2000 -- 검색하고자 하는 임의의 값 ;