首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子属性值之和排序模型

子属性值之和排序模型
EN

Stack Overflow用户
提问于 2015-06-03 12:25:18
回答 2查看 333关注 0票数 2

我有团队和团队有多个成员。每个会员都有积分。我想按这些成员积分的总和来安排小组。

示例:

太棒了!10分

全队好得8分

因为:

团队可怕的

  • 成员1,点数:5
  • 成员2,点数:5

团队良好:

  • 成员1,点数:5
  • 成员2,点数:3

但我似乎找不到解决办法。

EN

回答 2

Stack Overflow用户

发布于 2015-06-03 12:35:26

我对comment.So没有足够的声誉,我在这里指定我的观点,这个团队数据和它的成员数据位于同一个表或一个表中的团队数据上,成员数据在另一个table.Which数据库中是you using.If,您可以使用MySQL或Oracle,您可以使用聚合函数和CASE语句来解决这个问题。

您可以使用这样的查询(如果使用的是MySQl数据库)

代码语言:javascript
运行
复制
SELECT t.team_id,t.team_name,sum(t1.points) as sum_of_points,
 case  
 when sum(t1.points)=10 then "Awsome"
 when sum(t1.points)=8  then "good"
 else "default"
 end as credit 
from team t join team_membership t1 on(t.team_id=t1.team_id) 
group by t1.team_id order by sum_of_points desc
票数 0
EN

Stack Overflow用户

发布于 2015-06-03 13:41:02

在team.rb中

代码语言:javascript
运行
复制
has_many :memberships

def total_points
  self.memberships.sum(:points)
end

在控制器中

代码语言:javascript
运行
复制
@teams = Team.all.sort_by {|team| team.total_points }.reverse

在望(例如)

代码语言:javascript
运行
复制
<% @teams.each do |team| %>
  <tr>
    <td><%= team.total_points %></td>
    <% if team.total_points >= 10 %>
     <td><%= "awesome" %></td>
    <% else %>
     <td><%= "good" %></td>
    <% end %>
  </tr>
<% end %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30620039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档