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

Mysql Max se skupinou podle dotazu

To by vám mělo poskytnout výsledek, který hledáte. Protože MySql nemá PARTITION fungovat jako SQL SERVER, použil jsem známé řešení.

SELECT tmp.id, tmp.userid,tmp.username,tmp.`date`,score FROM
   (SELECT *, IF(@prev<>userid, @rownum := 1, @rownum := @rownum+1 ) AS rank,
           @prev := userid
    FROM scores s0
    JOIN (SELECT @rownum := NULL, @prev := 0) AS r
    ORDER BY s0.userid, s0.score DESC, s0.`date` DESC
   ) AS tmp
WHERE tmp.rank=1
ORDER BY tmp.score DESC, tmp.`date` desc



  1. PostgreSQL sloupec foo neexistuje, kde foo je hodnota

  2. Jak můžete v SQL seskupit podle rozsahů?

  3. Funkce SINH() v Oracle

  4. Poddotazy s EXISTS vs IN - MySQL