sql >> Databasteknik >  >> RDS >> Mysql

MySQL Volleybollställning

Detta bör göra vad du vill:

SELECT
    team_id,
    COUNT(*) AS GP,
    SUM(is_win) AS Wins,
    SUM(NOT is_win) AS Losses,
    2 * SUM(is_win) + SUM(NOT is_win) AS Points
FROM
(
    SELECT
        home_team_id AS team_id,
        home_score > visit_score AS is_win
    FROM results
    WHERE tcl_id = 68
    UNION ALL
    SELECT
        visit_team_id AS team_id,
        home_score < visit_score AS is_win
    FROM results
    WHERE tcl_id = 68
) T1
GROUP BY team_id
ORDER BY Points DESC

Utdata för din exempeldata:

4, 3, 2, 1, 5
3, 3, 2, 1, 5
1, 3, 1, 2, 4
2, 3, 1, 2, 4

Anmärkningar:

  • Din exempeldata verkar inte stämma överens med din förväntade utdata - din testdata har bara 6 spel spelade, men din förväntade utgång har 8 spel. Det är därför min produktion skiljer sig från din.
  • Du har inte angett tabellen för att hämta lagnamnen från team-ID. Gå bara med i ditt bord med lagnamnen för att få resultatet i det format du vill ha.



  1. reverse engineer mysql-databas för att skapa django-appen

  2. Behöver hjälp med att skapa anpassade användarregistrerings-/inloggningsskript

  3. PHP/MYSQL:Databastabell för e-postmeddelanden

  4. MySQL ersätter alla blanksteg med -