所以我见过SQL Server RowNumber()over(partition by id)转换为MySql 另一个问题posted here
但是这对MAX()等其他聚合函数没有帮助。
我需要一组行的Max()。
Cust_Type Cust_Name Revenue Max
Top A 10000 10000
Top B 9000 10000
Top C 8000 10000
Bottom X 5000 7000
Bottom Y 6000 7000
Bottom Z 7000 7000
现在我知道我可以进行查询以获取Max和Cust_Type,然后将其连接到整个表以添加最大值,但是有没有办法不执行额外的查询,而是在相同的情况下执行时尚作为我引用的帖子?
答案 0 :(得分:3)
如果我理解正确,你可以使用用户定义的变量。
select cust_type,
cust_name,
revenue,
@max:=IF(@custtype!=cust_type,revenue,@max),
@custtype:=cust_type
from yourtable, (select @max:=0, @custtype:='') t
order by cust_type, revenue desc