2013-05-27 27 views
-1

所以我有這個每週投票給最好的遊戲玩家。用戶可以投票選出3名最佳球員,1名得到3分,2次2p和3次1p。所以只需計算所有遊戲的所有選票並找出誰是最好的就很容易了。但是每場比賽的票數可能會有很大的不同。MySQL:基於每週投票的積分總數

例如:

Vote1:

第一:總500票100 - > 20%

Vote2:

第一:總100票40 - > 40%

所以我想要統計所有遊戲的所有選票,以便每場比賽都同樣重要。基本上我認爲我只需要計算每場比賽的票數和總和的百分比然後在一起。但我怎樣才能輕鬆實現?

我的表是這樣的:

ID,game_id,player3,player2,PLAYER1

+0

你的表是這樣的,什麼是player3,player2和PLAYER1?玩家的名字或ID?他們得到了多少票?如果你沒有日期字段,你將如何每週計算一次?請提供更多信息。 – Prix

+0

對不起。玩家3,玩家2和玩家1是玩家ID。玩家3 3分,玩家2 2分和玩家1 1分。並不意味着每週都如此嚴格。這更像是一場每週的比賽。所以我可以根據game_id – Verba

回答

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 
+0

來計算每場比賽的總數,謝謝,但只能以「正常」方式計算積分。所以每場比賽的總投票數並不重要。我需要一種方法來計算,在擁有500張選票的遊戲中,3張票比1張票比100張票更重要。 – Verba

+0

@mikeykk - 不知道我是否理解。你能用樣本數據和期望的結果更新小提琴嗎? – sgeddes

+0

@mikeykk - 這可能是更多的線? http://sqlfiddle.com/#!2/e6dcc/4 – sgeddes