gpt4 book ai didi

sql - 如何计算运行平均值

转载 作者:行者123 更新时间:2023-12-05 09:33:01 28 4
gpt4 key购买 nike

场景:

我想计算到目前为止发生的整个月的销售额的移动平均值。每个月都有不同的天数。如果 sales_amount 为 0,则表示此人休息一天,我需要忽略该值。

示例数据:

sales_amount    date         
100 2021-04-01
200 2021-04-02
300 2021-04-03
0 2021-04-04
100 2021-04-05

最终的 moving_average 值为 (100 + 200 + 300 + 100)/(4),因为我们忽略了 4 月 4 日,因为它的销售额为 0。

我在本网站上发现的不符合我需求的内容: https://www.sqlservercentral.com/articles/calculate-moving-averages-using-t-sql-in-sql-server但它是一定天数的,当每个月有不同的天数并且我想忽略某些行时,我该如何应用它?

预期结果:

sales_amount    date         moving_average
100 2021-04-01 100
200 2021-04-02 150
300 2021-04-03 200
0 2021-04-04 200
100 2021-04-05 175

我尝试过的事情:

AVG (Sales_Amount) OVER (
Partition BY [Date]
Order by [Date]
,Rows Between Unbounded Preceding and Current Row)

最佳答案

  1. 删除PARTITION BY
  2. Sales_Amount 使用 NULLIF() 因为您对 0
  3. 不感兴趣

ROWS

之前你还有一个额外的逗号
AVG ( NULLIF(Sales_Amount, 0) ) 
OVER
(
Order by [Date]
Rows Between Unbounded Preceding and Current Row
)

关于sql - 如何计算运行平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67563380/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com