-1

だから私はこのゲームの最高の選手に毎週投票しています. ユーザーは 3 人のベスト プレイヤーに投票でき、1 位には 3 ポイント、2 位には 2p、3 位には 1p が与えられます。したがって、すべてのゲームのすべての票を数えて、誰が最高かを判断するのは簡単です。ただし、ゲームごとの投票数は大幅に異なる場合があります。

例えば:

投票1:

1位: 500票中100票 -> 20%

投票2:

1位: 100票中40票 -> 40%

したがって、すべてのゲームが等しく重要になるように、すべてのゲームのすべての票を数えたいと思います。基本的には、ゲームごとの投票の割合を数えて合計するだけでよいと思います。しかし、どうすればこれを簡単に達成できますか?

私のテーブルは次のようなものです:

id、game_id、player3、player2、player1

4

1 に答える 1

0

UNION ALLすべてのプレイヤーをまとめるための 1 つの方法を次に示します (私があなたの質問を正しく理解している場合)。希望する結果が完全にわからないため、今のところこのままにしておきます。

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 に答える