Je to proto, že dbms_random()
se volá pro každý řádek, takže může generovat duplicitní výsledky. Místo toho, pokud chcete jeden náhodný řádek, zkuste něco takového:
select tid
from (select tid,
row_number() over (order by dbms_random.value()) as seqnum
from Train
) t
where seqnum = 1;
To vždy vrátí řádek s "seqnum =1", ale bude to náhodný tid
.