在sql / rails

时间:2015-06-15 13:19:14

标签: mysql ruby-on-rails

我有一个名为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

但这不是一张真实的图片,因为它不会报告任何日历年日期,除非该行程实际上是在该日期开始的!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下范围,只需尝试将您的sql转换为rails查询。

 scope :by_date, :group => "tips.start_date", :order => "COUNT(tips.start_date) DESC"
 @tips = Tip.by_date.limit(5)

注意:: 未测试 ,如果不能正常工作,请告知我们。希望你至少能得到一个想法。