Есть следующий селект
select a,rn, cnt
from ( select a, row_number() over (order by a) rn,COUNT (*) OVER () cnt from (
select '1' a from dual
union all
select '2' a from dual
union all
select '3' a from dual
union all
select '4' a from dual
union all
select '5' a from dual))
where rn in (
SELECT TRUNC (DBMS_RANDOM.VALUE (1, cnt + 1))
FROM DUAL
CONNECT BY ROWNUM < = 3)
Почему каждый раз выводит разное количество строк ?