sql server求方差的问题

qq309903548 2011-03-21 09:58:06
现在我弄了一张测试表,里面有下面四行数据,我想对这些数据求方差,用select var(num) from tb,结果算出的结果为1.3333333333,可是我按照方差公式σ^2=1/n ∑_(i=0)^n▒(x_i-¯x)^2 ,得出的应该是1啊,这是什么原因?难道var()函数不可靠?盼熟悉的人给指点下。
num
5
3
3
5
...全文
174 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq309903548 2011-03-21
  • 打赏
  • 举报
回复
原来是使用varp,我用错函数了。
ljking0731 2011-03-21
  • 打赏
  • 举报
回复


--建表
create table #test(a int)

insert into #test
select 5 union all select 3 union all select 3 union all select 5

select varp(a) from #test

--结果

----------------------
1

(1 行受影响)
qq309903548 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fredrickhu 的回复:]
楼主可以试试

select 1.0/3
select 1/3
的结果
[/Quote]
你的意思是这种方法就方差是正确的?只是我的精度有问题么?可是你可以仔细看下我的数字,分别是5,3,3,5。这四个数的均值是4,(5-4)^2+(3-4)^2+(3-4)^2+(5-4)^2=4,4/4应该是1吧?不应该是1.333333啊。我是这个意思。你能明白吗?
--小F-- 2011-03-21
  • 打赏
  • 举报
回复
楼主可以试试

select 1.0/3
select 1/3
的结果
--小F-- 2011-03-21
  • 打赏
  • 举报
回复
比如 1.0/200
这样的精度就不会出问题了
--小F-- 2011-03-21
  • 打赏
  • 举报
回复
你用公式的时候是不是全部用的INT型??

你可以在后面加个.0
qq309903548 2011-03-21
  • 打赏
  • 举报
回复
没人理我了?
qq309903548 2011-03-21
  • 打赏
  • 举报
回复
只能自己顶了。
有知道原因的么?帮帮忙呗。
qq309903548 2011-03-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lzd_83 的回复:]
精确度问题。
[/Quote]
精确度问题,咋差这么大啊?
Rotel-刘志东 2011-03-21
  • 打赏
  • 举报
回复
精确度问题。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧