我想根据2个列,主题和分类法从该表中选择6个随机记录。记录的选择必须平衡,主题和分类的重复应保持最小。是否有算法执行此操作?
任何有关SQL或java的帮助都将不胜感激。谢谢提前
答案 0 :(得分:0)
您可以使用有序集上的第n个样本执行此操作。它类似于:
select t.*
from (select t.*, (@rn := @rn + 1) as rn
from t cross join
(select @rn := 0) params
order by topics, taxonomy
) t cross join
(select count(*) as cnt from t) tt
where rn % floor(cnt / 6) = 1;
我们的想法是使用模运算来获取每个第n个值到6个。您可能需要调整where
中的确切参数,具体取决于数据的大小。