SQL从每个组中获取最大值

sra*_*rth 0 mysql sql

说我有一张桌子

桌上游戏

date     | track_id  | user_id | rating
-----------------------------------------
20170416 | 1         | 1       | 3  (***)
20170417 | 1         | 1       | 5
20170418 | 2         | 1       | 1
20170419 | 3         | 1       | 4
20170419 | 3         | 1       | 2  (***)
20170420 | 1         | 2       | 5
Run Code Online (Sandbox Code Playgroud)

我想要做的是对于每个唯一的 track_id, user_id 我想要最高评级的行。即产生下面的表格,其中(***)行被删除。

20170417 | 1         | 1       | 5
20170418 | 2         | 1       | 1
20170419 | 3         | 1       | 2
20170420 | 1         | 2       | 5
Run Code Online (Sandbox Code Playgroud)

知道什么是明智的 SQL 查询吗?

Man*_*oor 5

使用 MAX 内置函数和 GROUP by 子句:

    SELECT track_id, user_id, MAX(rating)
    FROM Your_table
    GROUP BY track_id, user_id;
Run Code Online (Sandbox Code Playgroud)