问题描述
我需要一些帮助。我试图在MysqL中运行查询,该查询将汇总包含收入的表。我面临的挑战是,在表中我们按月,按客户和地区列出了信息,并且并非所有客户都有每月的收入记录,我要完成的工作是对表进行汇总,按客户和地区,并获取每个客户最近3个月的平均收入。
样品表
预期结果
这怎么完成?
解决方法
一个选项使用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