关于 T-sql 语句 计算百分比的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 12:34:06
举一个统计民族分布的例子
在 ryxx(人员信息)表中存放了人员基本信息,自然包含了民族字段
设:共有120条记录。
统计查询语句如下:
select mz as '民族',count(*) as '人数',count(*)/120 as '比例' float from ryxx group by mz

得到的结果是:
民族 人数 比例
回 1 0
彝 2 0
汉 91 0
....

我试着 在 count(*)/120 语句 上进行强制类型转换,可是执行出错,
怎么也得不到小数位数。
请教各位数据库高手指点。

select mz as '民族',count(*) as '人数',SUBSTRING (convert(varchar (20), (count(*)/80.00*100) ),1,4)+'%' as '比例' from ryxx group by mz

试试吧
我试了

-- 这样就可以啦
将count(*)/120 改为count(*) * 1.0 /120

可以尝试进行转换:
cast(count(*)/120 as numeric(4,2)) 意思是取4位,而且保留小数点后2位

select mz as '民族',count(*) as '人数',count(*)/120.00 as '比例' float from ryxx group by mz