Re: some random() clarification needed

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Marc Millas <marc(dot)millas(at)mokadb(dot)com>
Cc: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: some random() clarification needed
Date: 2020-07-14 15:24:36
Message-ID: CAKFQuwYtqV0OJLEZbM25GNp0cdt6LmWfcqEEqFjU9mMnjRYpmw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Jul 14, 2020 at 8:15 AM Marc Millas <marc(dot)millas(at)mokadb(dot)com> wrote:

> select id, prenom from prenoms where id=ceiling(random()*2582);
>
> expecting to get, allways, one line.
> But its not the case.
> around 15% of time I get 0 lines which is already quite strange to me.
> but 10% of time, I get a random number of lines, until now up to 4.
> even weirder (to me !)
>
> so, can someone please clarify ?
>
>
You are basically asking:

For each row in my table compare the id to some random number and if they
match return that row, otherwise skip it. The random number being compared
to is different for each row because random() is volatile and thus
evaluated for each row.

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Gasa i Castell 2020-07-14 15:25:24 Surprising connection issue
Previous Message Marc Millas 2020-07-14 15:14:55 some random() clarification needed