首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用滞后函数进行STDEV计算?

如何使用滞后函数进行STDEV计算?
EN

Stack Overflow用户
提问于 2019-12-10 17:10:32
回答 1查看 135关注 0票数 0

我正在运行这样的代码:

代码语言:javascript
复制
SELECT ID, Date, Price,
    STDEV(Price) OVER (ORDER BY ID, Date ROWS BETWEEN 30 PRECEDING AND CURRENT ROW) As OneMonths,
    STDEV(Price) OVER (ORDER BY ID, Date ROWS BETWEEN 60 PRECEDING AND CURRENT ROW) As TwoMonths,
    STDEV(Price) OVER (ORDER BY ID, Date ROWS BETWEEN 90 PRECEDING AND CURRENT ROW) As ThreeMonths
FROM Price_Table

这给了我这个结果。

在第五行,我总是有三个零的三个方差。这说得通。但是,每次ID更改时,我都必须得到前面ID的价格,因为每次ID更改时,我都会预期标准差会被重置。所以,我认为橙色的第一行应该是零,下一行应该是零,因为价格在第二天没有变化。我尝试将延迟函数包装在STDEV函数的周围,得到了一个错误。我做了相反的尝试,也犯了一个错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-10 17:11:56

如果您想要每个id的值,那么您需要partition by

代码语言:javascript
复制
SELECT ID, Date, Price,
       STDEV(Price) OVER (PARTITION BY ID ORDER BY Date ROWS BETWEEN 30 PRECEDING AND CURRENT ROW) As OneMonths,
       STDEV(Price) OVER (PARTITION BY ID ORDER BY Date ROWS BETWEEN 60 PRECEDING AND CURRENT ROW) As TwoMonths,
       STDEV(Price) OVER (PARTITION BY ID ORDER BY Date ROWS BETWEEN 90 PRECEDING AND CURRENT ROW) As ThreeMonths
FROM Price_Table;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59272328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档