Đầu tiên hợp nhất bảng tỷ số với nhau hoán đổi đội chủ nhà với đội khách và hoán đổi số bàn thắng. Điều này cung cấp cho bạn một số dữ liệu nguồn có thể dễ dàng tổng hợp và truy vấn để tạo thẻ điểm giống như sau:
select
team,
count(*) played,
count(case when goalsfor > goalsagainst then 1 end) wins,
count(case when goalsagainst> goalsfor then 1 end) lost,
count(case when goalsfor = goalsagainst then 1 end) draws,
sum(goalsfor) goalsfor,
sum(goalsagainst) goalsagainst,
sum(goalsfor) - sum(goalsagainst) goal_diff,
sum(
case when goalsfor > goalsagainst then 3 else 0 end
+ case when goalsfor = goalsagainst then 1 else 0 end
) score
from (
select hometeam team, goalsfor, goalsagainst from scores
union all
select awayteam, goalsagainst, goalsfor from scores
) a
group by team
order by score desc, goal_diff desc;