一条SQL语句统计百分比

一条很简单的语句查询百分比

本例是查询文章是被点击过的在点所有文章的比重

select CONVERT(decimal(2,2), 
100 * convert(float, sum( case viewcount when 0 then 0 else 1 end)) 
/ convert(float,(case COUNT(id) when null then 1 else (case COUNT(id) when 0 then 1 else count(id) end) end))
) 
from Article


程序释义如下:

   (case COUNT(id) when null then 1 else (case COUNT(id) when 0 then 1 else count(id) end) end) ——统计所有文章的数量,如果所有文章的数量为0或者为null计为1,因为分母不能为0

  convert(float, sum( case viewcount when 0 then 0 else 1 end)) ——统计访问量大于1的文章,实现思路是求所有被访问过的文章的和,在Sum()函数中如果文章访问量大于0则加1,反之则加0, 如果最后数量为null,则计为0

   因为整数除以整数,会略去小数部分,所以会把统计出来的两个量,转化为Float类型,

  最近,将结果格式化为小数点后有两位的小数,

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值