加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 计算SQL Server中的移动范围(不带数组)

发布时间:2020-12-12 07:01:24 所属栏目:MsSql教程 来源:网络整理
导读:我需要在SQL Server中计算一堆数据的移动范围(至少我认为这就是它的名称).如果我可以使用数组,这将很容易,但我知道这对于MS SQL是不可能的,所以想知道是否有人有建议. 为了让您了解我的需求: 可以说我在sql server表中有以下内容: 1 3 2 6 3 我需要得到每个
我需要在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读