Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Волейбол Класиране

Това трябва да прави това, което искате:

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

Изход за вашите примерни данни:

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

Бележки:

  • Изглежда, че вашите примерни данни не съвпадат с очаквания резултат – вашите тестови данни имат само 6 изиграни игри, но очакваният ви резултат има 8 игри. Ето защо моят резултат е различен от вашия.
  • Не сте предоставили таблицата за получаване на имената на отборите от идентификаторите на отборите. Просто се присъединете към вашата таблица с имената на отборите, за да получите резултата в желания от вас формат.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите вмъкната стойност за тригера

  2. Сортиране на масиви по дата

  3. Бавно импортиране на голям MySQL Dump

  4. Как мога да активирам бавния регистър на заявките на MySQL, без да рестартирам MySQL?

  5. PHP MySQL през SSL. Сертификатът на партньор не съвпада