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 по дате отправления: