我需要在sql Server中计算一堆数据的移动范围(至少我认为这就是它的名称).如果我可以使用数组,这将很容易,但我知道这对于MS sql是不可能的,所以想知道是否有人有建议.
为了让您了解我的需求:
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
原文地址:https://www.jb51.cc/mssql/77170.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。