我需要找出每个月客户的平均销售额。例如,一位客户在2020年1月购买了一些产品。。。然后在二月。。。因此,对于客户来说,一月变成了第一个月,二月变成了第二个月。类似地,其他客户第一次购买是在4月20日,下一次购买是在6月20日。。。。。因此,第一个月(4月)和第二个月(4月和6月)的平均销售额预期结果:客户月平均销售额
cgyqldqp1#
您可以使用窗口函数来获取第一个日期。然后是算术。这里有一种方法:
select custid, year(date) * 12 + month(date) - (year(first_date) * 12 + month(first_date)) as diff, avg(sales) as avg_salesfrom (select t.*, min(date) over (partition by custid) as first_date from t ) tgroup by custid, diff
select custid, year(date) * 12 + month(date) - (year(first_date) * 12 + month(first_date)) as diff,
avg(sales) as avg_sales
from (select t.*,
min(date) over (partition by custid) as first_date
from t
) t
group by custid, diff
1条答案
按热度按时间cgyqldqp1#
您可以使用窗口函数来获取第一个日期。然后是算术。这里有一种方法: