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

MySQL volejbalové pořadí

To by mělo dělat, co chcete:

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

Výstup pro vaše ukázková data:

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

Poznámky:

  • Zdá se, že vaše ukázková data neodpovídají vašemu očekávanému výstupu – vaše testovací data obsahují pouze 6 odehraných her, ale váš očekávaný výstup má 8 her. To je důvod, proč se můj výstup liší od vašeho.
  • Neposkytli jste tabulku pro získání názvů týmů z ID týmů. Stačí se připojit ke svému stolu s názvy týmů, abyste získali výsledek ve formátu, který chcete.



  1. Createuser:nemohl se připojit k databázi postgres:FATAL:role tom neexistuje

  2. MongoDB nebo MySQL nebo obojí v aplikaci Rails

  3. V Rails nelze vytvořit databázi pro {adapter=>postgresql,

  4. Kdy použít jednoduché uvozovky, dvojité uvozovky a zadní zaškrtnutí v MySQL