Det er fordi dbms_random()
kaldes for hver række, så det kan generere duplikerede resultater. Hvis du i stedet vil have én tilfældig række, kan du prøve noget som dette:
select tid
from (select tid,
row_number() over (order by dbms_random.value()) as seqnum
from Train
) t
where seqnum = 1;
Dette vil altid returnere rækken med "seqnum =1", men det vil være en tilfældig tid
.