Isso porque
dbms_random()
é chamado para cada linha, para que possa gerar resultados duplicados. Em vez disso, se você quiser uma linha aleatória, tente algo assim:select tid
from (select tid,
row_number() over (order by dbms_random.value()) as seqnum
from Train
) t
where seqnum = 1;
Isso sempre retornará a linha com "seqnum =1", mas será um
tid
aleatório .