MySQL组与MAX没有按预期工作?

cod*_*ama 0 mysql sql

我有一张桌子:

ID | User | Amount
1  | 1    | 50
2  | 1    | 80
3  | 2    | 80
4  | 2    | 100
5  | 1    | 90
6  | 1    | 120
7  | 2    | 120
8  | 1    | 150
9  | 2    | 300
Run Code Online (Sandbox Code Playgroud)

我查询:

SELECT * FROM TABLE ORDER BY amount DESC group by userid
Run Code Online (Sandbox Code Playgroud)

我明白了:

ID | User | Amount
1  | 1    | 50
2  | 1    | 80
Run Code Online (Sandbox Code Playgroud)

但我期待:

ID | User | Amount
9  | 2    | 300
8  | 1    | 150
Run Code Online (Sandbox Code Playgroud)

我的sql出了什么问题?

jue*_*n d 5

分组时,您必须使用聚合函数,例如max()所有未分组的列

select t.* 
from table t
inner join 
(
   SELECT userid, max(amount) as total
   FROM TABLE 
   group by userid
) x on x.userid = t.userid and x.total = t.amount
ORDER BY t.amount DESC 
Run Code Online (Sandbox Code Playgroud)