我有一个时间表模型,如下所示:
timesheet
-id
-total_hours
-user_id
-date
现在我想制作一份如下所示的报告:
user_id total_hours
(我将有一个where子句,它将为给定的日期范围选择行,但我理解这部分。)
这是一个我可以使用activerecord的查询,还是我应该只使用psql并使用原始sql?
答案 0 :(得分:0)
您可以SUM
使用Group
,如下所示:
TimeSheet.select("user_id,SUM(total_hours) as total_hours").group(:user_id)
答案 1 :(得分:0)
尝试以下方法:
TimeSheet.group(:user_id).sum(:total_hours)
答案 2 :(得分:0)
如果需要,会产生类似
的哈希格式{251=>0, 129=>2, 195=>4}
这里251和129是user_id,0和2是total_hours
试试这个:
TimeSheet.group(:user_id).sum(:total_hours)
否则(对于ActiveRecord :: Relation):
TimeSheet.select("user_id,SUM(total_hours) as total_hours").group(:user_id)