通过多列轨道组 [英] rails group by multiple columns

查看:107
本文介绍了通过多列轨道组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有预算表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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆