Re: random rows

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: random rows
Дата
Msg-id 3AE87847.F943E9E6@agliodbs.com
обсуждение исходный текст
Ответ на random rows  (Jie Liang <jliang@ipinc.com>)
Список pgsql-sql
Jie,

> How I can return random N rows from my select stmt?
> like:
> e.g. what my selectee is a set of 1000 rows, I want randomly
> pickup 100 of 1000.

You'd have to do it inside a function or external program, and copy the
rows to a temporary table (which is what you'd return to the user).  
Thus, language-agnostic rules:

CREATE FUNCTION return_random(X)

LOOP X Times

totalrecs = COUNT(*) FROM maintable WHERE NOT EXISTS temptable

offset_count = RANDOM*totalrecs

INSERT INTO temptable ( a, b, c, d )
SELECT a, b, c, d FROM maintable
LIMIT 1 OFFSET offset_count;

END LOOP

END;

than:

SELECT temptable

-Josh

-- 
______AGLIO DATABASE SOLUTIONS___________________________                                       Josh Berkus  Complete
informationtechnology      josh@agliodbs.com   and data management solutions       (415) 565-7293  for law firms, small
businesses      fax  621-2533   and non-profit organizations.       San Francisco
 


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

Предыдущее
От: "Joao Pedro M. F. Monoo"
Дата:
Сообщение: Re: random rows
Следующее
От: Joel Burton
Дата:
Сообщение: Re: random rows