一条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类型,

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

 

 

 

 

阅读更多
文章标签: sql float null
个人分类: SQL
博主设置当前文章不允许评论。

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭