下面這個查詢:如何修改這個mysql查詢來顯示勝率?
SELECT member, count(*) Wins
FROM (SELECT player2_name as member from results
WHERE player1_id = 2 AND player1_result = 'W' AND community_id = 16
UNION ALL SELECT player1_name FROM results WHERE player2_id = 2
AND player2_result = 'W' AND community_id = 16) AS T
group by member ORDER BY Wins DESC
產生的結果,如:
+---------+-----------+
| member | Wins |
+---------+-----------+
| Player 1| 4 |
| Player 2| 3 |
| Player 3| 3 |
+---------+-------------+
爲了使數據更加有用(如每個玩家可能都起到了不同數量的遊戲)我想說明的額外的列'勝利百分比'。
- >這是基於每個玩家玩過/贏的遊戲數量。 - 如果輸出%是不可能直接在MySQL則小數就可以了,即0.76
我如何修改我現有的查詢產生如下的輸出:
+---------+-----------+---------------+---------+ | member | Wins | Games Played | Win % | +---------+-----------+---------------+---------+ | Player 1| 4 | 8 | 0.50 | | Player 2| 3 | 3 | 1.00 | | Player 3| 3 | 5 | 0.60 | +---------+-----------+---------------+---------+
我希望只是在添加一些東西沿着線:
SELECT GamesPlayed FROM (SELECT player1_name as member from results
WHERE player1_id = 2 AND community_id = 16
UNION ALL SELECT player2_name FROM results WHERE player2_id = 2
AND community_id = 16) AS GP
,然後在1號線:
SELECT member, count(*) Wins, round(sum(wins/GamesPlayed(1),2) WinPercentage
但是,這是一個非常粗糙的希望我猜怎麼看它的工作。
你還能改變你的數據庫模式?每個「遊戲」(每個參與者一個)有兩個記錄的表格會更容易處理。 – Mr47
我可以做,但我不想...... – RDowns