sql-server - 在 SQL Server 中计算移动范围(无数组)

标签 sql-server arrays statistics

我需要计算 SQL Server 中数据负载的移动范围(至少我认为这就是所谓的)。如果我可以使用数组,这会很容易,但我知道这对于 MS SQL 是不可能的,所以想知道是否有人有建议。

为了让您了解我需要什么:

假设我在 sql server 表中有以下内容:

1  
3  
2  
6  
3  

我需要得到每个数字的差异(按顺序),即:
|1-3|=2  
|3-2|=1  
|6-2|=4  
|3-6|=3  

然后平方这些:
2^2=4  
1^2=1  
4^2=16  
3^2=9  

编辑:可能值得注意的是,您没有将这些平方用于移动平均 - 我错了

然后总结它们:
4+1+16+9=30  

然后除以值的数量:
30/5=6  

然后平方根这个:
2.5(ish)  

编辑:因为您不是在对它们进行平方,所以您也不是在对它们进行平方

如果有人能帮助我完成第一步,那就太好了 - 我可以自己完成剩下的工作。

需要考虑的其他一些事项:
- 在 SQL Server 中使用存储过程
- 有相当多的数据(100 或 1000 个值),需要每天或每周计算一次

提前谢谢了。

~鲍勃

最佳答案

WITH    nums AS
        (
        SELECT  num, ROW_NUMBER() OVER (ORDER BY id) AS rn
        FROM    mytable
        )
SELECT  SQRT(AVG(POWER(tp.num - tf.num, 2)))
FROM    nums tp
JOIN    nums tf
ON      tf.rn = tp.rn + 1

关于sql-server - 在 SQL Server 中计算移动范围(无数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1554985/

相关文章:

sql - 如何在sql中实现先进先出

sql-server - SQL Server 中的远程计算机名称

Php/MYSQl 输出数组的每个值查询的第一个和最后一个结果?

r - 将数据从长数据更改为矩阵

python-3.x - Python - 根据现有数据集生成相关数据集

sql-server - SQL 表/ View 中的新列未显示在查询结果中

c# - 如何为unicode字符串的存储过程中的参数添加前缀 'N'

javascript - 如何使对象数组的搜索框在区分大小写且无空格的情况下使用react

c - 为什么 int x[n] 错误,其中 n 是 const 值?

独立性的Matlab测试