-1

所以我每周都会投票选出游戏中的最佳球员。用户可以投票选出 3 名最佳球员,第 1 名获得 3 分,第 2 名 2p,第 3 名 1p。所以很容易计算所有游戏的所有选票并找出谁是最好的。但是每场比赛的票数可能会有很大的不同。

例如:

投票1:

第一名:500 票中的 100 票 -> 20%

投票2:

第一名:总共 100 票中的 40 票 -> 40%

所以我想计算所有比赛的所有选票,这样每场比赛都同样重要。基本上我认为我只需要计算每场比赛的投票百分比然后加起来。但是我怎样才能轻松地做到这一点呢?

我的桌子是这样的:

id, game_id, player3, player2, player1

4

1 回答 1

0

这是将所有玩家放在一起的一种方法UNION ALL(如果我正确理解您的问题)-不完全确定您想要的结果,所以现在就这样离开。

select player_id, sum(points)
from (
  select player3 player_id, 3 points
  from games
  union all
  select player2, 2 
  from games
  union all
  select player1, 1 
  from games
) t
group by player_id
于 2013-05-27T19:58:52.040 回答