MySQL SUM несколько столбцов - PullRequest
3 голосов
/ 15 октября 2011

У меня есть еще один вопрос о сумме.Я хотел бы суммировать оценки бейсбольной команды, добавляя оценки при игре как локальные, со счетом при игре в качестве посетителя.

Таблица матчей выглядит так:

Baseball_matches (Id, IdTeamHome, IdTeamAway, ScoreHome, ScoreAway, Status)

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

Для каждой команды: SUM ScoreHome, когда IdTeamHome + SUM ScoreAway, когда IdTeamAway

Как я могу это сделать?

Спасибо.

1 Ответ

2 голосов
/ 15 октября 2011
SELECT Team,
       SUM(Score) AS Score,
       SUM(Won)   AS Won,
       SUM(Lost)  AS Lost
FROM   (SELECT IdTeamHome     AS Team,
               SUM(ScoreHome) AS Score,
               SUM(CASE
                     WHEN ScoreHome > ScoreAway THEN 1
                     ELSE 0
                   END)       AS Won,
        SUM(CASE
              WHEN ScoreHome < ScoreAway THEN 1
              ELSE 0
            END)       AS Lost
        FROM   matches
        WHERE  Status = 'Played'
        GROUP  BY IdTeamHome
        UNION ALL
        SELECT IdTeamAway     AS Team,
               SUM(ScoreAway) AS Score,
               SUM(CASE
                     WHEN ScoreHome < ScoreAway THEN 1
                     ELSE 0
                   END)       AS Won,
        SUM(CASE
              WHEN ScoreHome > ScoreAway THEN 1
              ELSE 0
            END)       AS Lost
        FROM   matches
        WHERE  Status = 'Played'
        GROUP  BY IdTeamAway) D
GROUP  BY Team  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...