gpt4 book ai didi

ruby-on-rails - Rails 报告生成中的子查询

转载 作者:行者123 更新时间:2023-12-04 07:06:45 25 4
gpt4 key购买 nike

我正在 Ruby on Rails 应用程序中构建报告,但我正在努力理解如何使用子查询。

每个 'Survey' 都有_many 'SurveyResponses',检索这些很简单,但是我需要根据其中一个字段“jobcode”对它们进行分组,因为我只想在一行中报告与单个作业代码相关的信息那个报告。

但是,我还需要知道构成该作业代码总数的构成数据。这样做的原因是我需要计算中位数和标准差等数据,因此需要知道构成总数的值。

我的想法是,我检索为调查报告的不同工作代码,然后在循环浏览这些代码时检索每个工作代码的单独响应。

这是正确的方法还是应该采用不同的方法?

最佳答案

您可以使用命名范围来简化获取响应组的过程:

named_scope :job_group, lambda{|job_code| {:conditions => ["job_code = ?", job_code]}}

把它放在你的响应模型中,然后像这样使用它:
job.responses.job_group('some job code')

你会得到一系列的回应。如果您想获得响应中某个属性的值的平均值,您可以使用 map:
r = job.responses.job_group('some job code')
r.map(&:total)
=> [1, 5, 3, 8]

或者 ,您可能会发现编写自定义 SQL 以获得属性组的平均值/平均值/总和更快。为此类工作穿越 rails 可能会导致明显的滞后。
ActiveRecord::Base.connection.execute("Custom SQL here")

关于ruby-on-rails - Rails 报告生成中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1037543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com