Sql Server Max() over partition by - 翻译成 MySql
Posted
技术标签:
【中文标题】Sql Server Max() over partition by - 翻译成 MySql【英文标题】:Sql Server Max() over partition by - translate into MySql 【发布时间】:2015-03-06 03:16:34 【问题描述】:所以我看到 SQL Servers RowNumber() over(partition by id) 从 另一个问题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,然后将其连接到整个表以添加最大值,但是有没有办法不进行额外的查询,而是在相同的情况下进行像我引用的帖子那样时尚?
【问题讨论】:
【参考方案1】:如果我理解正确,您可以使用用户定义的变量。
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
【讨论】:
这是完美的。正是我需要的。以上是关于Sql Server Max() over partition by - 翻译成 MySql的主要内容,如果未能解决你的问题,请参考以下文章
如何在pl sql中一起使用Select max和Insert
在 Spark 2.4 上的 pyspark.sql.functions.max().over(window) 上使用 .where() 会引发 Java 异常