sql >> Databáze >  >> RDS >> Mysql

Jak sjednotit všechny dotazy SQL-SQLite podle případu?

Nejprve musíte získat celkové skóre každého hráče a poté se připojit k players .
Potom použijte funkci okna FIRST_VALUE() k získání nejlepšího hráče každé skupiny:

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  

Podívejte se na ukázku .




  1. Hodnota BIGINT UNSIGNED je mimo rozsah

  2. Stále dostávám tento chybový kód mysql #1089

  3. Chyba SQLAlchemy bez zadání hesla

  4. 3 způsoby, jak vypsat všechny spouštěče pro danou tabulku v PostgreSQL