如何订购分组结果?

时间:2014-02-01 23:02:43

标签: ruby-on-rails-3

我正在创建一个Rails 3.2.14应用程序。 在这个应用程序中,我得到了一个名为Timereport的模型。在模型中我得到了一个类方法 我用来生成统计数据。

def self.stats_time_spent(params)
 data = group("date(created_at)")
 data = data.where("backend_user_id = ?", params[:backend_user_id])
 data = data.where("created_at >= ?", params[:date_from])
 data = data.where("created_at <= ?", params[:date_to])
 data = data.select("date (created_at) as timecreated, sum(total_time) as timetotal")
 data
end

此功能有效,但它以随机方式输出数据。日期未排序。 我试图添加.order(“created_at desc”),但后来我收到了这个错误:

PG::GroupingError: ERROR:  column "timereports.created_at" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: ...user_id = '1') GROUP BY date(created_at) ORDER BY created_at...
                                                             ^
: SELECT COUNT(*) AS count_all, date(created_at) AS date_created_at FROM "timereports"  WHERE 

我有两个问题。这是聚合数据的好方法吗?如何订购输出?

感谢所有输入!

1 个答案:

答案 0 :(得分:1)

您应该按date(created_at)

订购