如何在 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 个月平均收入?的主要内容,如果未能解决你的问题,请参考以下文章

如何编辑我的 postgreSQL 查询以按日期选择几列的最新行

关于c语言数组的问题?知道他是表示几行几列的!

在mysql中为某一行的某几列插入数据怎么写

基于py3和pymysql的数据库查询,查询某几列的数据

如何合并仅几列的两个数据框

html如何对表格的一行中的几列进行合并的代码