如何根据SSMS中两个不同查询获得的值计算百分比



第一个查询:

select COUNT(EUpdate) 
from EmpUpdates 
where EProj = 'abc' and EID = '101';

第二个查询:

select COUNT(EProj) 
from EmpUpdates 
where EID = '101';
percentage = (first query / second query) * 100

您可以进行条件聚合。除非eupdateeproj中有null值,否则我建议使用avg()

select avg(case when eproj = 'abc' then 100.0 else 0 end) res
from empupdates 
where eid = 101

如果你真的需要处理nulls:

select 100.0 * count(case when eproj = 'abc' then eupdate end) / count(eproj) res
from empupdates 
where eid = 101

我去掉了eid周围的单引号,因为它看起来像一个数字;如果它真的是一个字符串,那么您可以恢复该更改。

您可以使用条件聚合:

SELECT 100.0*COUNT(CASE WHEN EProj = 'abc' AND EID = '101' THEN EUpdate END) /
COUNT(CASE WHEN EID = '101' THEN Eproj END) AS percentage
FROM EmpUpdates;

最新更新