Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Bảng xếp hạng bóng chuyền MySQL

Điều này sẽ làm những gì bạn muốn:

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

Đầu ra cho dữ liệu mẫu của bạn:

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

Ghi chú:

  • Dữ liệu mẫu của bạn dường như không khớp với kết quả mong đợi của bạn - dữ liệu thử nghiệm của bạn chỉ có 6 trò chơi được chơi, nhưng đầu ra dự kiến ​​của bạn có 8 trò chơi. Đây là lý do tại sao đầu ra của tôi khác với đầu ra của bạn.
  • Bạn chưa cung cấp bảng để lấy tên nhóm từ id nhóm. Chỉ cần tham gia vào bảng của bạn với tên đội để nhận kết quả ở định dạng bạn muốn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. rắc rối kết nối cơ sở dữ liệu từ xa android

  2. lỗi thay đổi bảng, thêm ràng buộc khóa ngoại gặp lỗi Không thể thêm hoặc cập nhật hàng con

  3. Khóa cấp bảng ở chế độ Hibernate

  4. MySQL, Kiểm tra xem một cột có tồn tại trong bảng với SQL hay không

  5. Đúng / Sai so với 0/1 trong MySQL