如何使用sql语句在一条记录内实现方差计算

时间:2021-07-10 04:04:07
知道用“select var(字段名) from tablename”是计算不同记录的字段名的方差,但是如果一个数据库里边存在一条记录多个数据的时候,如何用sql实现呢?
比如数据库里有这样的数据:
字段名:pvalue1   pvalue2   pvalue3   pvalue4  pvalue5
数值  :2         5         4         2        7
如何用sql实现这条数据的方差呢?

5 个解决方案

#1


我试了这样的方法:
dim pingjunzhi as double
dim fangcha as double
rs.open "select (val(pvalue1)+val(pvalue2)+val(pvalue3)+val(pvalue4)+val(pvalue5))/5 from tablename"
pingjunzhi=rs(0)
rs.close
rs.open "select * from tablename",con,1,2
fangcha=[(rs(0)-pingjunzhi)^2+(rs(1)-pingjunzhi)^2+(rs(2)-pingjunzhi)^2+(rs(3)-pingjunzhi)^2+(rs(4)-pingjunzhi)^2)/5]
rs.close

但是运行的时候提示红色哪行类型不匹配!不知道什么原因?

还有没有比较简单的实现方法么?

#2


 负数不能开方

#3


引用 2 楼 ayalicer 的回复:
负数不能开方


这里也不存在开方的问题呀

#4


fangcha = ((rs(0) - pingjunzhi) ^ 2 + (rs(1) - pingjunzhi) ^ 2 + (rs(2) - pingjunzhi) ^ 2 + (rs(3) - pingjunzhi) ^ 2 + (rs(4) - pingjunzhi) ^ 2) / 5


vb的括号用法

#5


不能用[]这个东东吧,就是 ()

#1


我试了这样的方法:
dim pingjunzhi as double
dim fangcha as double
rs.open "select (val(pvalue1)+val(pvalue2)+val(pvalue3)+val(pvalue4)+val(pvalue5))/5 from tablename"
pingjunzhi=rs(0)
rs.close
rs.open "select * from tablename",con,1,2
fangcha=[(rs(0)-pingjunzhi)^2+(rs(1)-pingjunzhi)^2+(rs(2)-pingjunzhi)^2+(rs(3)-pingjunzhi)^2+(rs(4)-pingjunzhi)^2)/5]
rs.close

但是运行的时候提示红色哪行类型不匹配!不知道什么原因?

还有没有比较简单的实现方法么?

#2


 负数不能开方

#3


引用 2 楼 ayalicer 的回复:
负数不能开方


这里也不存在开方的问题呀

#4


fangcha = ((rs(0) - pingjunzhi) ^ 2 + (rs(1) - pingjunzhi) ^ 2 + (rs(2) - pingjunzhi) ^ 2 + (rs(3) - pingjunzhi) ^ 2 + (rs(4) - pingjunzhi) ^ 2) / 5


vb的括号用法

#5


不能用[]这个东东吧,就是 ()