我正在尝试查询,但似乎无法破解其语法。因此,我需要获取当月(最近一次)的调查,将其限制为5,然后根据相关表的计数进行排序,该表是调查的答复。因此,如果一项调查有8条回答,另外4条,则8条回答将显示在顶部。
我有一个范围来查找本月的调查,但是我需要放弃它以进行更复杂的查询,或者找到一种以最大survey.response_count
进行订购的方法。
这是我得到的最接近的数字,但仍然不正确。
@sorted_active_surveys = Survey.joins(:survey_responses).group(:survey_id).order('COUNT(survey_responses.survey_id) DESC')
如果我尝试与合并范围结合使用,则created_at
日期会变得模棱两可,并且会出错。
Survey.rb
scope :for_month, ->(date) { where("MONTH(created_at) = ?", date.month).limit(5) }
这也会产生相同的错误
scope :for_month, ->(date) { where("MONTH(survey.created_at) = ?", date.month).limit(5) }
任何帮助将不胜感激。
答案 0 :(得分:1)
这不会保留范围,但似乎可以正确地按响应计数排序并将日期保留在当前月份之内。
@SpringBootTest
@EmbeddedCassandra(scripts = "...", replace = EmbeddedCassandra.Replace.NONE /*use auto-configured cluster */)
@ExtendWith(SpringExtension.class)
public class EmbeddedCassandraTests {
@Test
public void testMe() {
}
}