GROUP BY语句的问题(SQL)

Art*_*uro 2 mysql sql group-by

我有一个表GAMES有这个信息:

Id_Game  Id_Player1  Id_Player2  Week
--------------------------------------
1211     Peter       John        2
1215     John        Louis       13
1216     Louis       Peter       17
Run Code Online (Sandbox Code Playgroud)

我想获得每个玩家玩过的最后一周的列表,以及游戏的数量,这应该是:

Id_Player  Week  numberGames
-----------------------------
Peter      17    2
John       13    2
Louis      17    2
Run Code Online (Sandbox Code Playgroud)

但相反,我得到了这个(关于彼得周的通知):

Id_Player  Week  numberGames
-----------------------------
Peter      2     2
John       13    2
Louis      17    2
Run Code Online (Sandbox Code Playgroud)

我这样做是:

  SELECT Id_Player, 
         MAX(Week) AS Week, 
         COUNT(*) as numberGames 
    FROM ((SELECT Id_Player1 as Id_Player, Week 
             FROM Games) 
           UNION ALL
           (SELECT Id_Player2 as Id_Player, Week 
              FROM Games)) AS g2 
GROUP BY Id_Player;
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我找到错误吗?

Jim*_*son 7

Week列的数据类型是什么?如果数据类型Week为varchar,则会出现此行为.