我有预算表,其中包含emptype_id和calendar_id Actual_head,estimate_head
当我执行Budgets.sum(:actual_head ,:group=>"emptype_id,calendar_id")
时,我没有得到按上述两列分组的结果,而仅按emptype_id
分组
但是,当我检查日志时,SQL查询是正确的
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的总和
并对此进行一些计算。
最佳答案
Rails无法支持多列分组。您必须使用常规查找所有内容:
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 }
关于sql - Rails按多列分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1241352/