On 28-01-2018 08:39, Ryan Murphy wrote:
Hello hackers and postgressers,

I am aware of 2 ways to select a random row from a table:

    1) select * from table_name order by random() limit 1;
        -- terribly inefficient

    2) select * from table_name tablesample system_rows(1) limit 1;
        -- only works on tables, not views or subqueries

Is there an option that is reasonably efficient and can be used on
views and subqueries?

Thanks!
Ryan


I do it with:

SELECT * FROM table_name OFFSET RANDOM() * LIMIT 1;

Regards,
HC

Reply via email to