我保留了Best-of-Two系列的数据。因此,对于每场比赛,有2场比赛与同一支球队相关联。
所以这意味着每场比赛都有两场比赛,桌子上有每个队伍的每场比赛记录。
因此,对于每1场比赛,有4条记录(A队的第1场比赛,A队的第2场比赛,B队的第1场比赛和B队的第2场比赛)。一场比赛有3种可能的结果:2-0,1-1或0-2。
示例:A队比赛B队3场比赛,C队和D队(2-0,2-0和1-1) select语句中我期望的结果是:
matchId | Team | Wins
1 | A | 2
1 | B | 0
2 | A | 2
2 | C | 0
3 | A | 1
3 | D | 1
实际数据:
matchId | gameId |teamName | Victory | Loss
2959 3635 Frost 0 1
2959 3490 Frost 1 0
2959 3490 SKT 0 1
2959 3635 SKT 1 0
2956 3487 Frost 0 1
2956 3573 Frost 0 1
2956 3573 Shield 1 0
2956 3487 Shield 1 0
2923 3452 SKT 1 0
2923 3507 SKT 1 0
2923 3507 IM1 0 1
2923 3452 IM1 0 1
所以使用此代码我正在寻找:
matchId |teamName | Wins
2959 Frost 1
2959 SKT 1
2956 Frost 0
2956 Shield 2
2923 SKT 2
2923 IM1 0
这是我目前的代码,试图找出答案:
SELECT DISTINCT b.matchId, c.teamName, d.Wins
FROM PoolOfTeams a JOIN (
SELECT t1.matchId, t1.gameId, t1.teamName FROM poolOfTeams t1
) b on (b.matchId = a.matchId) JOIN (
SELECT t2.gameId, t2.teamName FROM poolOfTeams t2
) c ON (c.gameId = b.gameId) JOIN (
SELECT t3.teamName, SUM(t3.matchVictory) AS Wins
FROM poolOfTeams t3 group by matchId
) d ON (d.teamName = c.teamName);
答案 0 :(得分:1)
尝试
SELECT matchID, Team, SUM(Win) AS Wins
FROM poolOfTeams
GROUP BY matchID, Team
ORDER BY Team ASC
我认为'GROUP BY'就是你要找的。 p>
编辑:交换GROUP和ORDER语句的顺序。谢谢Rahul。