将组百分比计算为2位小数 – SQL

前端之家收集整理的这篇文章主要介绍了将组百分比计算为2位小数 – SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下查询
SELECT hostVersion,CONVERT(varchar,100.0 * count(*) / tot,1)  + '%' as 'Percent'
FROM hostInfo,(SELECT COUNT(*) as tot FROM hostInfo) x
GROUP BY hostVersion,tot

并收到以下输出

+--------------------------------+
| hostVersion | Percent          |
+--------------------------------+
|    5.0.0    | 26.666666666666% |
+--------------------------------+
|    5.1.0    | 73.333333333333% |
+--------------------------------+

如何舍入到小数点后1位? (即26.7%和73.3%)

解决方法

更好的转换选择是str()函数. (记录 here.)

此外,您可以使用窗口函数进行计算(假设您使用的是sql Server 2005或更新版本).这是我的查询版本:

select hi.hostVersion,str(((100.0*count(*)) / sum(count(*)) over ()),5,2)+'%'
from hostInfo hi
group by hi.hostVersion

猜你在找的MsSQL相关文章