Re: strange result for select * from table where id=random()*900

Поиск
Список
Период
Сортировка
От Tommy Gildseth
Тема Re: strange result for select * from table where id=random()*900
Дата
Msg-id 46A9A524.7000009@usit.uio.no
обсуждение исходный текст
Ответ на strange result for select * from table where id=random()*900  (Stefan Zweig <stefanzweig1881@web.de>)
Список pgsql-sql
On 07/27/2007 09:48 AM, Stefan Zweig wrote:
> hi list,
> 
> this is my query:
> 
> select 
> *
> from _g2977 
> where 
> id=floor(random() * (900));
> 
> in table _g2977 i have id(s) from 1 up to 900. i just want to select one random dataset by the above query but i does
notwork.
 
> 
> actually i get sometime zero, sometimes one, sometimes two and sometimes even three results back from the above query
althoughi thought it should give only one random dataset from the table.
 


random() isn't immutable, so it's re-calculated for every row. Try f.ex 
this instead:
SELECT
*
FROm _g2977
ORDER BY random()
LIMIT 1


-- 
Tommy Gildseth
DBA, Gruppe for databasedrift
Universitetet i Oslo, USIT
m: +47 45 86 38 50
t: +47 22 85 29 39


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

Предыдущее
От: Stefan Zweig
Дата:
Сообщение: strange result for select * from table where id=random()*900
Следующее
От: Achilleas Mantzios
Дата:
Сообщение: Re: strange result for select * from table where id=random()*900