我有团队,团队有多个成员资格。每个成员(member)都有积分。我想按这些成员(member)积分的总和对团队进行排序。
例子:
团队很棒 | 10分
团队好 | 8分
因为:
团队很棒
- 成员(member)1,积分:5
- 成员(member)2,积分:5
团队好:
- 成员(member)1,积分:5
- 成员(member)2,积分:3
但我似乎找不到解决方案。
最佳答案
我没有足够的声誉来发表评论。所以我在这里说明我的观点。这个团队数据及其成员数据是在同一个表中还是一个表中的团队数据和另一个表中的成员数据。您使用的是哪个数据库.如果是MySQL或者Oracle可以使用聚合函数和CASE语句后跟order by来解决这个问题。
您可以使用这样的查询(如果您使用的是 MySQl 数据库)
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
关于ruby-on-rails - 按子属性值之和排序模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620039/