Report abuse

select_team = '(SELECT IF(steam_games.ct_score = steam_games.t_score, "draw", IF(steam_games.ct_score > steam_games.t_score, "ct", "t")) FROM steam_games WHERE steam_games.id = steam_players.steam_game_id)'
select_player_user_id = '(SELECT steam_users.user_id FROM steam_users WHERE steam_users.id = steam_players.steam_user_id)'
select_player_game_id = '(SELECT steam_games.game_id FROM steam_games WHERE steam_games.id = steam_players.steam_game_id)'
select_player_team = "(SELECT players.team FROM players WHERE players.user_id = #{select_player_user_id} AND players.game_id = #{select_player_game_id})"
sum_wins = "SUM(CASE WHEN #{select_team} = #{select_player_team} THEN 1 ELSE 0 END)"
sum_losses = "SUM(CASE WHEN #{select_team} != #{select_player_team} THEN 1 ELSE 0 END)"
sum_draws = "SUM(CASE WHEN #{select_team} = 'draw' THEN 1 ELSE 0 END)"
select("#{sum_wins} / (COUNT(*) - #{sum_draws}) AS win_percentage").group(:steam_user_id).order('win_percentage DESC').limit(limit)