2009-11-17 85 views
2

我做在Rails的模型中发现如下:找到不同值的数量在Rails特定的列找到

@jobs = Job.find(:all, :conditions => ["job_id = ?", params[:id]])

此查询的结果也带回了来自关联模型JobResponses数据(有是每个工作记录的多个JobResponses)。一旦我有JobResponse结果,我将为每组作业结果计算许多不同的平均数/中位数等。

JobResponses中返回的一列是company_id - 因此我可能会收回10份工作回复(4份来自公司A,2份来自公司B,2份来自公司D,1份来自公司D)不同的公司。

如何计算/显示返回JobResponses结果的不同公司的数量?

回答

2

,如果我了解清楚,尝试下面让不同的公司数量: @ jobs.map(&:job_responses).flatten.map(&:COMPANY_ID).uniq.size

+0

这让我在哪里,我需要去。我的最终代码是: s.map(&:company_id).uniq.size 谢谢! – simonyoung 2009-11-17 15:55:31

0

也许,平原的sql?

@jobs = Job.find_by_sql('select job.*, count(jr.id) as distinct_responses from job, job_responses jr where jr.job_id = job.id group by job.id') 

@jobs每个元素现在有distinct_responses访问