【问题标题】:How to write SQL to calculate running average with some additional formulae?如何使用一些额外的公式编写 SQL 来计算运行平均值?
【发布时间】:2020-08-14 11:09:17
【问题描述】:

以下是我计算的运行平均值的图像。但是这个要求比运行平均值要多一些。

以下是 Microsoft Excel 工作表中要求的图片。

所以,为了用 Excel 表格中收集的 =(3*C4+2*C5+1*C6)/6 等公式计算运行平均值,SQL Query 可以会写吗?

另外,如果通过 SQL 不可行,那么我如何使用第二张图片中的 D 列作为我在 SSAS 中的度量?

【问题讨论】:

  • 为什么你的运行平均值不包括第二行?
  • 作为您的第一篇文章,请您避免使用图像来进行数据、代码和查询。而是使用格式化的文本。您的问题不仅看起来更好,更易于阅读,而且试图帮助您的人可以从您的问题中复制和粘贴代码/数据以改进/测试它。
  • @gotqn 感谢您的关注。第二行可以忽略。我想要实现的是我从需求屏幕截图中获得的 D 列中的数据。它需要使用上述公式计算,而不是正常平均值。
  • @DaleK 是的,我会在下一个问题中记住这一点。谢谢你的建议,我觉得很有道理。
  • 这个问题还为时不晚。

标签: sql sql-server ssms ssas


【解决方案1】:

使用 LAG()offset 并相应地遵循您的公式

avg_val = ( (3.0 * lag(Open_, 2) over (order by M, [WEEK]) )
          + (2.0 * lag(Open_, 1) over (order by M, [WEEK]) )
          + (1.0 * Open_) ) / 6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多