avg函数的正确用法,问题虽小,分可不少

mazhayang 2002-03-25 10:26:15
例如:
declare @ real
select @s=avg(f) from (select count(*) as f from t group by fid1,fid2) a
为什么@s得到在总是整数,
...全文
1871 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mazhayang 2002-03-28
  • 打赏
  • 举报
回复
try
mazhayang 2002-03-27
  • 打赏
  • 举报
回复
那我怎么解决这个问题
alen_fen 2002-03-27
  • 打赏
  • 举报
回复
同意楼上的。我曾经也是遇到了这样的问题,我的一个变量乘上一个整数的时候得到的是一个整数,而不是一个real。
蓝天 2002-03-27
  • 打赏
  • 举报
回复
select @s=avg(convert(float,f)) from (select count(*) as f from t group by fid1,fid2) a
warning 2002-03-26
  • 打赏
  • 举报
回复
avg()函数是用于cube中的
avg()聚合函数是用于数据库中,和sum()聚合函数的用法类似
xhfjy 2002-03-26
  • 打赏
  • 举报
回复
表达式结果 返回类型
整数分类 int
decimal 分类 (p, s) decimal(38, s) 除以 decimal(10, 0)
money 和 smallmoney 分类 money
float 和 real 分类 float
你的count()返回的是INT所以AVG返回INT
mazhayang 2002-03-26
  • 打赏
  • 举报
回复
我知道用法,
上面只是一个例
我想为什么我的avg函数回得到int,而不是real
fredfei 2002-03-25
  • 打赏
  • 举报
回复
avg函数一共有两个
一个是对分组求平均值得

AVG
返回组中值的平均值。空值将被忽略。

语法
AVG ( [ ALL | DISTINCT ] expression )

参数
ALL

对所有的值进行聚合函数运算。ALL 是默认设置。

DISTINCT

指定 AVG 操作只使用每个值的唯一实例,而不管该值出现了多少次。

expression

精确数字或近似数字数据类型类别的表达式(bit 数据类型除外)。不允许使用聚合函数和子查询。

返回类型
返回类型由表达式的运算结果类型决定。


-------------------
另一个是
Avg
返回在某一集合上对数值表达式求得的平均值。

语法
Avg(«Set»[, «Numeric Expression»])

注释
此函数需要单元数的隐性计数,不包含空单元。若要强制包含空单元,应用程序必须使用 CoalesceEmpty 函数。有关空单元的更多信息,请参见 OLE DB 文档。

示例
如果 Sales 分别为 1000、2000 和 3000,则下面的函数返回 2000:

Avg({USA, Canada, Mexico}, Sales)

filix 2002-03-25
  • 打赏
  • 举报
回复
avg(),表示对符合条件的某一个字段的值进行平均。

select avg(score) from tablename
如果有别的字段必须保证分组。
select name,avg(score) from tablename group by name

34,576

社区成员

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

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