sql >> Databáze >  >> RDS >> Mysql

jak vytisknout tabulku umístění za chodu z mysql tabulky fotbalových [fotbalových] výsledků?

Nejprve sjednoťte tabulku skóre dohromady, vyměňte si domácí tým s týmem hostů a vyměňte počet gólů. Získáte tak některá zdrojová data, která lze snadno agregovat, a dotaz na vygenerování výsledkové karty je něco takového:

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. Co jsou krycí indexy a kryté dotazy v SQL Server?

  2. php vložte více hodnot do samostatných řádků v tabulce mysql

  3. Woocommerce:Uživatelé mohou koupit produkt pouze jednou

  4. Naše nejoblíbenější databázové blogové příspěvky v roce 2017