sql >> Database teknologi >  >> RDS >> Mysql

hvordan udlæser man en stillingstabel i farten fra en mysql-tabel med fodboldresultater?

Første forening af resultattabellen skifter hjemmeholdet med udeholdet og tæller mål. Dette giver dig nogle kildedata, der nemt kan aggregeres, og forespørgslen om at generere scorekortet er sådan her:

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;


  1. MySQL Workbench - Sådan synkroniseres EER-diagrammet

  2. MariaDB LOCALTIMESTAMP() Forklaret

  3. Opsætning af en lokal SQL Server-database

  4. WebApp (Tomcat-jdbc) Pooled DB-forbindelse, der kaster opgivelse af undtagelse