Itu karena dbms_random()
dipanggil untuk setiap baris, sehingga dapat menghasilkan hasil duplikat. Sebagai gantinya, jika Anda menginginkan satu baris acak, coba sesuatu seperti ini:
select tid
from (select tid,
row_number() over (order by dbms_random.value()) as seqnum
from Train
) t
where seqnum = 1;
Ini akan selalu mengembalikan baris dengan "seqnum =1", tetapi akan menjadi tid
acak .