Re: select where id=random()*something returns two results

Поиск
Список
Период
Сортировка
От Kris Jurka
Тема Re: select where id=random()*something returns two results
Дата
Msg-id Pine.LNX.4.33.0309182114020.26639-100000@leary.csoft.net
обсуждение исходный текст
Ответ на select where id=random()*something returns two results  (Ulrich Meis <u.meis@gmx.de>)
Список pgsql-bugs
On Fri, 19 Sep 2003, Ulrich Meis wrote:

> select * from quotes where id=1+round(random()* cast ((select max(id)
> from quotes) as double precision));
>  id  |                           quote                           |
> author
> -----+-----------------------------------------------------------+------
> -----------
>  187 | Vergib Deinen Feinden, aber vergiss niemals ihre Namen.   | John
> F. Kennedy
>  377 | Die Wirklichkeit ist nicht so oder so, sondern so und so. | Harry
> Mulisch
> (2 rows)
>
> I'm not really into databases, but this sounds wrong. Most of the time,
> I actually get 0 results.

The problem is that random() is evaluated on each line giving a different
result.

Kris Jurka

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Ulrich Meis
Дата:
Сообщение: select where id=random()*something returns two results
Следующее
От: Rod Taylor
Дата:
Сообщение: Re: select where id=random()*something returns two results