首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVG功能不起作用

问AVG功能不起作用
EN

Stack Overflow用户
提问于 2016-01-03 12:29:38
回答 5查看 1.2K关注 0票数 0

我正在研究Server。我有一个具有int列HalfTimeAwayGoals的表,我试图用以下代码获取AVG:

代码语言:javascript
复制
select 
    CAST(AVG(HalfTimeAwayGoals) as decimal(4,2)) 
from 
    testtable 
where 
    AwayTeam = 'TeamA'

结果我得到了0.00。但正确的结果应该是0.55。

你知道出了什么问题吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-01-03 12:56:02

代码语言:javascript
复制
select 
    AVG(CAST(HalfTimeAwayGoals as decimal(4,2))) 
from 
    testtable 
where 
    AwayTeam = 'TeamA'
票数 3
EN

Stack Overflow用户

发布于 2016-01-03 13:27:28

如果字段HalfTimeAwayGoals是整数,则avg函数将执行整数平均值。也就是说,结果是0或1,但不能介于两者之间。

解决方案是将值转换为数字。我经常这样做,只需乘以1.0:

代码语言:javascript
复制
select CAST(AVG(HalfTimeAwayGoals * 1.0) as decimal(4, 2)) 
from testtable 
where AwayTeam = 'TeamA';

请注意,如果在平均值之前将数据转换为小数点,则结果将不需要有4的刻度和2的精度。

票数 0
EN

Stack Overflow用户

发布于 2016-01-04 21:59:47

你能试着把整数除以1.00转换成十进制吗?

代码语言:javascript
复制
select
    AVG(HalfTimeAwayGoals/1.00) as average 
from
    testtable 
where
    AwayTeam = 'TeamA'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34576534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档