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

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

并收到以下输出

  1. +--------------------------------+
  2. | hostVersion | Percent |
  3. +--------------------------------+
  4. | 5.0.0 | 26.666666666666% |
  5. +--------------------------------+
  6. | 5.1.0 | 73.333333333333% |
  7. +--------------------------------+

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

解决方法

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

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

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

猜你在找的MsSQL相关文章