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

Giải đấu bóng đá phức tạp Đặt hàng động trong MySQL?

Hãy thực hiện từng bước:

Chọn các trận đã thắng trên sân nhà và tỷ số trên sân nhà:

   SELECT COUNT(*) as wins, SUM(G.home_score) as score FROM games G WHERE 
      G.team_id = T.team_id #See 3. query and you'll understand
      G.home_score > away_score

Hãy gọi kết quả này là HOME_GAMES.

Chọn các trận đã thắng và tỷ số của các trận sân khách:

SELECT COUNT(*) as wins, SUM(G.away_score) as score FROM games G
WHERE 
  G.team_id = T.team_id #See 3. query and you'll understand
  G.away_score > G.home_score

Hãy gọi kết quả này là AWAY_GAMES.

Chọn tổng số trò chơi đã thắng và tổng điểm:

   SELECT (A.wins + H.wins) AS total_wins, (A.score + H.score) AS total_score FROM
   (AWAY_GAMES) AS A, (HOME_GAMES) AS H, teams T 
   ORDER BY total_wins, total_score

==> Tổng hợp tất cả lại bằng cách thay thế AWAY_GAMES và HOME_GAMES:

SELECT (A.wins + H.wins) AS total_wins, (A.score + H.score) AS total_score FROM 
  (SELECT COUNT(*) as wins, SUM(G.away_score) as score FROM games G
   WHERE 
     G.team_id = T.team_id #See 3. and you'll understand
     G.away_score > G.home_score) AS A, 

   (SELECT COUNT(*) as wins, SUM(G.home_score) as score FROM games G 
   WHERE 
      G.team_id = T.team_id #See 3. and you'll understand
      G.home_score > away_score) AS H, 

   teams T
   ORDER BY total_wins, total_score 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số lượng thuộc tính tìm kiếm theo mặt

  2. CẬP NHẬT hoặc XÓA trước rồi CHÈN

  3. CHÈN với CHỌN

  4. Làm cách nào để chuyển đổi tên thành id

  5. Chỉ chọn người dùng từ một bảng nếu không ở bảng khác