It sounds like an expensive query, but I'm sure the big brains in this group can help you optimize it.
Perhaps this is not the answer you wish to hear, but another option would be for you to maintain the aggregate information PER USER through the use of triggers (say, the number of games they've played and won, or simply, their winning percentage). Sure, the information would be redundant, and, in an ideal world, unnecessary, but I'm sure it would vastly improve your aggregate reports.
Rob