有一个表CALL_TICKET,有两个字段,话单流水(TICKET_ID),通话时长(DURATION),例如:
TICKET_ID DURATION
1 10
2 12
3 65
......
现在要解决的是,我按TICKET_ID自小到大的顺序的统计通话时长(DURATION),找到累加到2000的时候,TICKET_ID的值是多少。
请教有什么好办法,采用存储过程循环话单的效率太低了,不用这种方法。。
TICKET_ID DURATION
1 10
2 12
3 65
......
现在要解决的是,我按TICKET_ID自小到大的顺序的统计通话时长(DURATION),找到累加到2000的时候,TICKET_ID的值是多少。
请教有什么好办法,采用存储过程循环话单的效率太低了,不用这种方法。。
---------- ---------- ----------
1 1 1
2 2 3
3 5 8
4 543 551
5 53 604OPER@tl> select * from test; AAA BBB
---------- ----------
1 1
2 2
3 5
4 543
5 53OPER@tl> select * from
2 (select aaa,bbb,sum(bbb) over(order by aaa) sum
3 from test
4 order by sum desc)
5 where sum<=552
6 and rownum=1; AAA BBB SUM
---------- ---------- ----------
4 543 551OPER@tl>