如何在 MySQL 中汇总表以获得基于几列的 3 个月平均收入?
Posted
技术标签:
【中文标题】如何在 MySQL 中汇总表以获得基于几列的 3 个月平均收入?【英文标题】:How can I summarize in MySQL a table to obtain a 3 month revenue average based on several columns? 【发布时间】:2020-08-17 21:29:55 【问题描述】:我需要一些帮助。我试图在 mysql 中运行一个查询,该查询将汇总一个包含收入的表。我面临的挑战是,在表格中,我们按月、按客户和按地区提供信息,并不是所有客户每个月都有收入记录,我想要完成的是按客户和区域并获取每个客户最近 3 个月的平均收入记录。
示例表
预期结果
如何做到这一点?
【问题讨论】:
Rafa,欢迎来到 Stack Overflow。尝试使用How to create a Minimal, Reproducible Example 中的指南格式化您的帖子。 【参考方案1】:一个选项使用窗口函数,在 MySQL 8.0 中可用:
select customer_name, region, avg(revenue) avg_revenue_last_3_months
from (
select
t.*,
row_number() over(partition by customer_name, region order by month desc) rn
from mytable t
) t
where rn <= 3
group by customer_name, region
【讨论】:
以上是关于如何在 MySQL 中汇总表以获得基于几列的 3 个月平均收入?的主要内容,如果未能解决你的问题,请参考以下文章