加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:55:59 所属栏目:MsSql教程 来源:网络整理
导读:我有以下查询: SELECT hostVersion,CONVERT(varchar,100.0 * count(*) / tot,1) + '%' as 'Percent'FROM hostInfo,(SELECT COUNT(*) as tot FROM hostInfo) xGROUP BY hostVersion,tot 并收到以下输出: +--------------------------------+| hostVersion |
我有以下查询:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读