После полудня,
Я создал таблицу команд для команды, в которой я участвую.
Детали извлекаются из базы данных «Игры», в которой регистрируются все матчи,даты, домашние / выездные оценки и время года, а затем динамически создает таблицу.
В последнее время 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";
Любая помощь очень ценится.