我有一个名为BusinessTrip的模型,它有一个start_date和一个end_date。这是一个mysql支持的Rails 3.2应用程序。
我的营销人员要求我制作一份统计数据,这将统计出今年最受欢迎的十大最新日期。
我将创建一个rake任务来生成这些数字并每月一次通过电子邮件发送给营销人员,并认为在SQL中编写查询比使用activerecord更容易,但是如何开始使用查询。我想我必须按日期对记录进行分组计数,但我不确定如何开始......
显然这会给我最受欢迎的五个开始日select start_date, count(*) from trips
group by start_date
order by count(*) desc
limit 5
但这不是一张真实的图片,因为它不会报告任何日历年日期,除非该行程实际上是在该日期开始的!
答案 0 :(得分:0)
您可以尝试使用以下范围,只需尝试将您的sql转换为rails查询。
scope :by_date, :group => "tips.start_date", :order => "COUNT(tips.start_date) DESC"
@tips = Tip.by_date.limit(5)
注意:: 未测试 ,如果不能正常工作,请告知我们。希望你至少能得到一个想法。