如何求一个表中整型字段的平均数,得到一个浮点数
我有一个表Person,其中一个字段是sm,含义是人数,类型是整型。现在我想求该字段的平均值,如果用如下语句来求:
SELECT AVG(sm) FROM Person
只能得到一个整型数,本来平均人数应该是4.65,却变成了5。而我希望得到小数。请问怎么得到??
问题点数:50、回复次数:5Top
1 楼zjcxc(邹建)回复于 2003-08-02 21:37:22 得分 45
用这个就可以了:
SELECT AVG(cast(sm as decimal(20,4))) FROM PersonTop
2 楼zjcxc(邹建)回复于 2003-08-02 21:38:54 得分 0
因为整型计算的结果还是为整型
所以,你先将它转换成实型再求平均就可以了.
Top
3 楼zjcxc(邹建)回复于 2003-08-02 21:39:04 得分 0
decimal(20,4) 是保留4位小数,如果你的小数位数要求为2位,就用:
SELECT AVG(cast(sm as decimal(20,2))) FROM Person
Top
4 楼Rivulet119(黑眼睛)回复于 2003-08-02 21:44:15 得分 0
最直观的方法:
declare @i float,
@j float,
@n float
select @i=count(*) from person
select @j=sum(sm) from person
set @n=@j/@i
只有@n肯定可以带小数了。Top
5 楼Rivulet119(黑眼睛)回复于 2003-08-02 21:48:57 得分 5
不过用zjcxc(周建)的方法更简捷。星星就是星星,学习ing~~~Top



