MySQL таблица футбольного турнира с домашней и выездной статистикой

У меня есть данные ниже в базе данных mysql, есть дополнительные поля, такие как рефери, желтые карточки, красные карточки, удар хозяев поля, удары команды гостей, домашние удары в створ ворот, удары гостей в створ ворот.

 ------------------------------------------------------------------------
|id  |   hometeam   |  homegoals  |  awaygoals  |  awayteam  | results  |
------------------------------------------------------------------------
| 1  |Brighton      |   3         |     1       | Nott'm Frst|    H     |
------------------------------------------------------------------------
| 2  |Birmingham    |   1         |     3       | Reading    |    A     |
------------------------------------------------------------------------
| 3  |Nott'm frst   |   4         |     4       | Brighton   |    D     |
------------------------------------------------------------------------

То, что я хотел бы вывести, это таблица турнирной таблицы со следующими деталями

 --------------------------------------------------------------
|                   Overall    |   Away    | Home             |
--------------------------------------------------------------
|pos  |   team   |P|W|D|L|F|A| |W|D|L|F|A| |W|D|L|F|A| |GD|Pts|
--------------------------------------------------------------
| 1   |Brighton  |2|1|1|0|7|4| |0|1|0|4|4| |1|0|0|3|1| |-1| 4 |
--------------------------------------------------------------
| 2   |Nott'm fst|2|0|1|1|5|3| |0|0|1|1|3| |0|1|0|4|4| |-1| 1 |
--------------------------------------------------------------

Остальная информация может быть достигнута путем доступа к каждой странице команды. Мой запрос работает нормально для всего раздела, однако другие детали получить трудно.

Запрос как ниже

select
team,
count(*) P,
count(case when fulltimehomegoals > fulltimeawaygoals then 1 end) W,
count(case when fulltimeawaygoals> fulltimehomegoals then 1 end) L,
count(case when fulltimehomegoals = fulltimeawaygoals then 1 end) D,
sum(fulltimehomegoals) F,
sum(fulltimeawaygoals) A,
sum(fulltimehomegoals) - sum(fulltimeawaygoals) GD,
sum(
case when fulltimehomegoals > fulltimeawaygoals then 3 else 0 end
+ case when fulltimehomegoals = fulltimeawaygoals then 1 else 0 end
) Pts
from (
select hometeam team, fulltimehomegoals, fulltimeawaygoals, fulltimeresults from fixtures
union all
select awayteam, fulltimeawaygoals, fulltimehomegoals, fulltimeresults from fixtures
) a
group by team
order by Pts desc, GD desc;

Пожалуйста, дайте направление на разделы, которые нуждаются в редактировании для достижения конечного результата.

Заранее спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …