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