请问,oracle如何计算取出随机条数的某个字段的总和?

select * from (select actno,amt from t_chnl_log order by dbms_random.random) where sum(amt) < 10000

现在报错在 sum(amt) 上 , ORA-00934,貌似不能sum随机取的数据??
请问我如何才能用sum(amt)作为条件??谢谢

请看看下面行不行

 select actno,sum(amt) as sumAmt from t_chnl_log group by actno having sumAmt < 10000

你意思没有表达清楚
select * from(
select actno, amt, RANK() OVER(ORDER BY dbms_random.random) as sj
from t_chnl_log) z
where sj < 10000
这个语句你研究下,不知道能不能帮到你

分两步吧

先创建表random_t(需要用两次 以防不同)
select actno,amt from t_chnl_log order by dbms_random.random

判定sum是否小于10000 如果满足那么返回所有记录 反之为空

select
from
(select sum(amt) as amt from random_t )a
join random_t t
on 1=1
where a.amt < 10000

分两步吧

先创建表random_t(需要用两次 以防不同)
select actno,amt from t_chnl_log order by dbms_random.random

判定sum是否小于10000 如果满足那么返回所有记录 反之为空

select *
from
(select sum(amt) as amt from random_t )a
join random_t t
on 1=1
where a.amt < 10000