sql >> Database >  >> RDS >> Mysql

Standen MySQL Volleybal

Dit zou moeten doen wat je wilt:

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

Uitvoer voor uw voorbeeldgegevens:

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

Opmerkingen:

  • Uw voorbeeldgegevens lijken niet overeen te komen met uw verwachte output - uw testgegevens hebben slechts 6 games gespeeld, maar uw verwachte output heeft 8 games. Daarom is mijn output anders dan die van jou.
  • Je hebt de tabel niet opgegeven om de teamnamen uit de team-ID's te halen. Doe gewoon mee met je tafel met de teamnamen om het resultaat te krijgen in het formaat dat je wilt.



  1. De huidige aanmeldings-ID ophalen in SQL Server (T-SQL)

  2. Bouw snel een PHP CRUD-interface met de PDO Advanced CRUD Generator Tool

  3. IntegrityError:(1062, dubbele invoer voor sleutel)

  4. Kolom tijdstempel bijwerken in toepassing of database?