[#] [Из песочницы] Postgres. Выборка N случайных записей
habrabot(difrex,1) — All
2014-11-12 15:30:39


При работе над одним проектом возникла необходимость написать некое подобие тестовой системы. Задача формулировалась примерно следующим образом:

* из N записей в базе необходимо выбрать m (3-5) случайных строк в серии из k выборок (преимущественно k=2).

А теперь то же самое человеческим языком: из таблицы нужно два раза выбрать по 3-5 случайных записей. При этом не должно быть дубликатов и выборка должна происходить случайным образом. Первое, что приходит в голову:

SELECT *
FROM data_set
WHERE id NOT IN (1,2,3,4, 5)
ORDER BY random()
LIMIT 5;


И это даже будет работать. Вот только цена такого решения… [Читать дальше →][1]

[1]: http://habrahabr.ru/post/242999/#habracut