Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Tabele siatkówki MySQL

To powinno zrobić to, co chcesz:

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

Dane wyjściowe dla przykładowych danych:

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

Uwagi:

  • Twoje przykładowe dane nie zgadzają się z oczekiwanymi wynikami — dane testowe zawierają tylko 6 rozegranych gier, ale oczekiwany wynik zawiera 8 gier. Dlatego moje wyniki różnią się od twoich.
  • Nie podałeś tabeli do pobierania nazw drużyn z identyfikatorów drużyn. Po prostu dołącz do swojego stołu z nazwami drużyn, aby uzyskać wynik w wybranym formacie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dołączyć zmienną PHP do instrukcji MySQL?

  2. MySQL jak uzupełnić brakujące daty w zakresie?

  3. Zapytanie SQL działające w phpmyadmin, ale nie w php

  4. Nieznana kolumna na 'liście pól', ale kolumna istnieje

  5. Dopasowanie wszystkich wartości w klauzuli IN