Проблема с оператором GROUP BY (SQL) - PullRequest
2 голосов
/ 22 февраля 2011

У меня есть таблица GAMES с этой информацией:

Id_Game  Id_Player1  Id_Player2  Week
--------------------------------------
1211     Peter       John        2
1215     John        Louis       13
1216     Louis       Peter       17

Я хотел бы получить список за последнюю неделю, когда играл каждый игрок, и количество игр, которое должно быть таким:

Id_Player  Week  numberGames
-----------------------------
Peter      17    2
John       13    2
Louis      17    2

Но вместо этого я получаю это (уведомление на Питерской неделе) :

Id_Player  Week  numberGames
-----------------------------
Peter      2     2
John       13    2
Louis      17    2

Что я делаю, это:

  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;

Может ли кто-нибудь помочь мне найти ошибку?

1 Ответ

7 голосов
/ 22 февраля 2011

Каков тип данных столбца Week? Если тип данных Week равен varchar, вы получите такое поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...