首页 > 解决方案 > 如何在 SQL 中使用 Cast(count 和 case 语句)获取百分比

问题描述

选择演员((计数(当birthdayattendance ='yes'然后Student_ID为空结束时的不同情况)/count(不同的Student_ID))作为十进制(2,2))

 from #tmpcombined.

Issue : last step which is percentage is returning as 0.00 instead 0.50. There are two students out of 4 whose who attended school on their birthday. 

标签: sql

解决方案


一些数据库进行整数除法。为了防止这种情况,我只乘以 1.0:

select (count(distinct case when birthdayattendancek = 'yes' then Student_ID end) * 1.0 /
        count(distinct Student_ID)
       )

cast()除法的ing只是将结果转换为小数。


推荐阅读