Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menyatukan semua kueri SQL-SQLite dengan pernyataan kasus?

Pertama Anda harus mendapatkan skor total setiap pemain dan kemudian bergabung dengan players .
Kemudian gunakan fungsi jendela FIRST_VALUE() untuk mendapatkan pemain teratas dari setiap grup:

SELECT DISTINCT p.group_id, 
       FIRST_VALUE(p.player_id) OVER (PARTITION BY p.group_id ORDER BY m.score DESC) winner_id
FROM players p
LEFT JOIN (
  SELECT player, SUM(score) score
  FROM (
    SELECT match_id, first_player player, first_score score FROM matches
    UNION ALL
    SELECT match_id, second_player, second_score FROM matches
  ) t
  GROUP BY player
) m ON m.player = p.player_id  

Lihat demo .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Duplikasi UUID MySql BUG

  2. MySQL Urutkan Berdasarkan 2 Kolom

  3. PHP mysqli menyiapkan pernyataan untuk prosedur tersimpan tanpa parameter

  4. Produk cartesian MySQL antara dua pernyataan SELECT

  5. bagaimana saya bisa mencadangkan dan memulihkan tanggal dari basis data mysql