Sql求两数(或以上)的带小数的平均,

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:09:47
比如18,19两个数,求平均的话应该是18.5,但是好像显示的就是18,怎么让他显示18.5?麻烦输条完整的命令,

先将要计算的整型数值转换成小数类型,比如cast(整型数值字段 as numeric(18, 2))或者cast(整型数值字段 as decimal(18, 2)),然后再做avg():
select avg(cast(整型数值字段 as numeric(18, 2))) from table where .....

显示18是因为18,19两个数系统默认类型是整型 你必须将 18,19改为double等浮点数类型,如此相加再除2后才会有18.5,否则由于两个整型相加相除后还是整型,故此,0.5会被略去(整型是向下取整的,不会四舍五入)

int类型sql除都是取整,你可以考虑改成double类型
或者int类型*10或*100,在程序中做处理

select cast(avg(字段) as decimal(18,2)) from 表

默认数据类型是整形,赞成四楼和五楼的观点