sqlserver比例,sql 比例

sqlserver 2005如何某门课程查询大于90分以上的人数占总中人数的比例?

select '优秀率:'+

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了石拐免费建站欢迎大家使用!

cast(cast((select count(1) from 分数表名 where 分数列=90) as decimal(18,2))/cast((select count(1) from 分数表名) as decimal(18,2))*100 as varchar(20))+'%'  as 优秀率

把对应表名 和 分数的列名  改成你的。

测试可用

如图

Navicat 中SQLSERVER 长度后面的比例是小数吗?decimal怎么写(5,2)的长度

decimal(5,2)

表示所有数据位数【不含小数点 整数位数+小数位数】不多于5位

其中小数位数不多于2位

sqlserver 里怎么求百分比

select REALHANDLER, count(*) as 总数, sum(case when status='RESOLVED' then 1 else 0 end)as 已解决,

sum(case when status!='RESOLVED' then 1 else 0 end)as 未解决,

sum(case when status='RESOLVED' then 1 else 0 end)+0.0001/count(*) as 完成率

from INCIDENT

group by REALHANDLER

)+0.0001试一下 因为返回的类型和sum(case when status='RESOLVED' then 1 else 0 end),count(*) 一样

如何解决SQLServer占内存过多的问题

我们需要准备的材料分别是:电脑。

1、在我的电脑中,搜索访问sql占用内存,在右侧的管理服务器中选择重新启动,重启一下IIS。

2、查看一下,sql服务仍然占用大量的内存,内存占用基本没有改变。

3、然后重启sql服务。

4、然后再重启一下sql代理。

5、最后再看一下任务管理器,就会发现内存占用量降低了。

用SQL求百分比,同一列数据

select name,str((case (select isnull(sum(cost),0) from table1) when 0 then 0 else cost/(select isnull(sum(cost),0) from table1) end)*100,10,2)+'%' as bfb from table1

以上sql语句较长,解释一下:

使用case...when...end,是为了避免合计cost为0的话,出现无法除0的错误;结果值乘以100是为了配合百分比格式;使用str(...,10,2)函数是把计算出来的数字值转换成两位小数精度的文本串;最后,在结果后加上一个百分号,效果就完整了。

以上语句在sqlserver数据库中测试通过。

SQLSERVER数据库求每列不同数据所占百分比

标准答案:

declare @ACount int

select @ACount=count(*) from 表 --计算总数,避免放在大数据的select中影响效率

if @ACount0 --判断是否有记录,无记录时@Acount为0,不能做除数

select 表.name,cast(count(*) as numeric(10,3))/cast(@ACount as numeric(10,3)) from 表 group by 表.name --做百分比时要避免直接用/,会整除的,就无法判断%比例了。

else

select '表中无记录,无法统计比例'

--小数点后保留三位,换算成%比,应该如12.5%的精确度,numeric(10,3)前面的10如果长度不够可以根据需要修改


当前文章:sqlserver比例,sql 比例
URL链接:http://azwzsj.com/article/dsccipj.html