Dat komt omdat dbms_random()
wordt aangeroepen voor elke rij, zodat het dubbele resultaten kan genereren. Als je in plaats daarvan één willekeurige rij wilt, probeer dan zoiets als dit:
select tid
from (select tid,
row_number() over (order by dbms_random.value()) as seqnum
from Train
) t
where seqnum = 1;
Dit zal altijd de rij met "seqnum =1" retourneren, maar het zal een willekeurige tid
zijn .