通过多列轨道组 [英] rails group by multiple columns
问题描述
我有预算表emptype_id和CALENDAR_ID actual_head,estimated_head
i have budgets table with emptype_id and calendar_id actual_head, estimated_head
当我这样做 Budgets.sum(:actual_head,:组=>中emptype_id,CALENDAR_ID)
我没有得到的结果由上述两列分组,但只能由 emptype_id
when i do Budgets.sum(:actual_head ,:group=>"emptype_id,calendar_id")
i do not get the result grouped by the above two columns but only by the emptype_id
然而,当我检查日志的SQL查询是正确的。
however when i check the log the sql query is right
SELECT sum(`budgets`.actual_head) AS sum_actual_head, emptype_id,calendar_id AS emptype_id_calendar_id FROM `budgets` GROUP BY emptype_id,calendar_id
有103行
我想通过每个emptype_id和CALENDAR_ID迭代得到actual_head的总和 并做一些关于它的计算。
I wanted to iterate through each emptype_id and calendar_id to get a sum of actual_head and do some calculations on it.
推荐答案
与多个列分组不能被轨支撑。你必须使用一个普通的找到所有的:
Grouping with multiple columns cannot be supported by rails. You have to use a regular find all:
budgets = Budgets.find(:all,
:select => "emptype_id, calendar_id, sum(budgets.actual_head) AS sum_actual_head",
:group => "emptype_id, calendar_id")
budgets.each { |budget| puts budget.sum_actual_head }
这篇关于通过多列轨道组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!