Ruby on rails Rails 5、Postgesql和按关联分组
我正努力了解Postgesql和按关联分组 我有一个反复多次的试验。我想按列重复分组,以便在变量中使用。目前我有:Ruby on rails Rails 5、Postgesql和按关联分组,ruby-on-rails,postgresql,ruby-on-rails-5,Ruby On Rails,Postgresql,Ruby On Rails 5,我正努力了解Postgesql和按关联分组 我有一个反复多次的试验。我想按列重复分组,以便在变量中使用。目前我有: @trials = Trial.joins(:repetitions).group('repetitions.repetition_index') 但是,请记住这个错误 PG::GroupingError: ERROR: column "trials.id" must appear in the GROUP BY clause or be used in an aggregat
@trials = Trial.joins(:repetitions).group('repetitions.repetition_index')
但是,请记住这个错误
PG::GroupingError: ERROR: column "trials.id" must appear in the GROUP BY clause or be used in an aggregate function
现在,从阅读这篇文章开始,我需要在我的分组方法中加入trials.id
,但当我这样做时,输出不再按重复进行分组。重复索引
。它似乎是按试验进行分组的。id
我该如何确保该组仅通过重复。重复索引
更新
尝试:
@trials = Trial.joins(:repetitions).select('repetitions.repetition_index,repetitions.treatment_index').group('trials.id, repetitions.repetition_index,repetitions.treatment_index')
并致电:
<% @trials.each do |r| %>
<table class="table table-bordered">
<tr>
<td><%= r.repetition_index %></td>
<td><%= r.treatment_index %></td>
</tr>
</table>
<% end %>
当我希望得到:
| |1|
|1|2|
-----
| |1|
|2|2|
-----
如果你想摆脱这个错误,你可以这样做
@trials = Trial.joins(:repetitions).group('trials.id, repetitions.repetition_index')
如果您不想按trails.id
分组,而想按repetition.repetition\u index
分组,则只能从查询中选择repetitions.repetition\u index
@trials = Trial.joins(:repetitions).select('repetitions.repetition_index').group('repetitions.repetition_index')
让我知道你是否清楚
更新
根据你的最新问题,我认为你需要以下内容。查询未经测试。如果不起作用,请告诉我
Trial.
joins(:repetitions).
select('repetitions.repetition_index,repetitions.treatment_index').
group_by {
|repetition| repetitions.repetition_index
}
谢谢Vishal。明白这一切。但我还想在重复协会中加入另一个专栏,名为:治疗指数。把它包括在组中似乎会撤销重复。重复索引分组,这是我很难理解的。然后你必须用父表分组,在你的例子中是trails。我认为这不会影响你的成绩。你试过了吗?如果我将trials.id包含在group方法中,那么这似乎也忽略了repetitions.repetition\u索引组。你也可以在从中获取结果后使用数组的“uniq”方法query@DollarChills尝试在组中添加两个trails.id,repetition.repetition\u index
Trial.
joins(:repetitions).
select('repetitions.repetition_index,repetitions.treatment_index').
group_by {
|repetition| repetitions.repetition_index
}