MySql Спортивная Лига Заказ на заказ - PullRequest
0 голосов
/ 07 февраля 2019

После полудня,

Я создал таблицу команд для команды, в которой я участвую.

Детали извлекаются из базы данных «Игры», в которой регистрируются все матчи,даты, домашние / выездные оценки и время года, а затем динамически создает таблицу.

В последнее время Tiebreakers изменились на:

  • Запись о выигрышах / проигрышах / связях
  • Разница в очках в обычном сезоне (когда две команды связаны с одним и тем же рекордом W / L / T)
  • Наименьшее среднее количество очков, пропущенных в играх (исключая присужденные игры)

IЯ изо всех сил пытаюсь понять, как я могу сгруппировать / заказать, чтобы соответствовать этим критериям.

Схема таблицы (GameId - это комбинация первых 3 символов каждого имени команды, в первую очередь домашняя команда, например, Детройт против Чикаго будетбудь DETCHI, то выездной прибор CHIDET):

GameId varchar(10)
GameDate date NULL
GameHomeTeam varchar(100) NULL
GameHomeScore int(4) NULL 
GameAwayTeam varchar(100) NULL
GameAwayScore int(4) NULL
GameSeason int(4)

Мой запрос:

global $wpdb;
$year = "2018";
$query ="SELECT team
               ,COUNT(*)  played
               ,SUM(win)  wins
               ,SUM(loss) lost
               ,SUM(win)/count(*) pctWon
               ,SUM(draw) draws
               ,SUM(SelfScore) ptsfor
               ,SUM(OpponentScore) ptsagainst
               ,SUM(SelfScore) - SUM(OpponentScore) goal_diff
               ,SUM(3*win + draw) score
         FROM (
            SELECT team
                  ,SelfScore
                  ,OpponentScore
                  ,SelfScore > OpponentScore win
                  ,SelfScore < OpponentScore loss
                  ,SelfScore = OpponentScore draw
         FROM (
            SELECT `GameHomeTeam` team, 
                   `GameHomeScore` SelfScore, 
                   `GameAwayScore` OpponentScore
            FROM Game 
            WHERE `GameSeason` = '" . $year . "' 
            UNION ALL  
            SELECT `GameAwayTeam`, 
                   `GameAwayScore`, 
                   `GameHomeScore`
            FROM Game
            WHERE `GameSeason` = '" . $year . "'
   ) a
) b
GROUP BY team
ORDER BY wins DESC, draws DESC, lost ASC, goal_diff DESC";

Любая помощь очень ценится.

...