|
|
to: 三思兄, 用
SQL> with tt as(
2 select filmname ofm,
3 rtrim(filmname, 'abi') nfm,
4 count(rtrim(filmname, 'abi')) over(partition by rtrim(filmname, 'abi')) ct,
5 row_number() over(partition by rtrim(filmname, 'abi') order by 1) rn
6 from t_film t
7 )
8 select ofm from(
9 select ofm from tt where nfm in(
10 select nfm from(
11 select a.*, sum(ct) over(order by rownum) sv
12 from (select * from tt where rn = 1 order by dbms_random.value) a
13 ) where sv <= 10
14 ) order by ct desc) where rownum<=8
15 /
我连续的执行, 执行到极端情况时,出现错误的结果:
SQL> /
OFM
--------------------------------------------------
侏罗纪公园i
侏罗纪公园ii
侏罗纪公园iii
东方海盗传奇a
东方海盗传奇b
天行者b
太极a
太极b
8 rows selected |
|