Sql 每个类别有10个随机条目
我有这张桌子 主题类别->有许多->主题子类别->有许多->主题->有许多->问题>选择 我想做的是,在给定主题类别id的情况下,每个主题子类别随机抽取10个问题 我已经用SQL查询完成了Sql 每个类别有10个随机条目,sql,ruby-on-rails,ruby,random,postgresql-9.1,Sql,Ruby On Rails,Ruby,Random,Postgresql 9.1,我有这张桌子 主题类别->有许多->主题子类别->有许多->主题->有许多->问题>选择 我想做的是,在给定主题类别id的情况下,每个主题子类别随机抽取10个问题 我已经用SQL查询完成了 SELECT x.* FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY t.TopicSubCatId) AS rowNumber, t.* FROM ( SELECT abc.TopicSubCatId as TopicSu
SELECT x.*
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY t.TopicSubCatId) AS rowNumber,
t.*
FROM (
SELECT abc.TopicSubCatId as TopicSubCatId, q.id as QuestionId, q.*
FROM questions q
LEFT JOIN topics t on t.id = q.topic_id
LEFT JOIN (SELECT tsc.id as TopicSubCatId
FROM topic_categories tc
LEFT JOIN topic_sub_categories tsc ON tc.id = tsc.topic_category_id
WHERE tsc.id IS NOT NULL
AND tc.id = 1
GROUP BY tsc.id, tsc.name) abc ON t.topic_sub_category_id = abc.TopicSubCatId
) t) x
where x.rowNumber <= 3
order by random()
您能否建议如何使用active record或任何其他方法来查询我的问题
顺便说一句:我正在使用postgresql对
问题
模型创建一个方法,为您实现这一点。然后,你可以做q.random_chooses.each do | c |
如果我能将查询转换为活动记录,我就可以这样做。我只能通过ActiveRecord::Base.connection.execute()执行该查询,而这不会返回objectcheckout问题。每当我遇到想要在rails中使用的复杂查询时,我都会尝试将它们分解为依赖模型,然后为每个模型编写作用域。然后,您可以使用Peter的方法将作用域链接在一起以创建聚合queryAgree
-@questions.each do |q|
q.choices.order("RANDOM()").each do |c|
end
end